平日に、bashのコマンドから次の形式の列化された出力が繰り返し発生するとします(私の場合svn st
、Railsの作業ディレクトリで実行した場合)。
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
コマンドの出力(この場合はファイル名)を処理するには、2番目の列を次のコマンドの入力として使用できるように、何らかの解析が必要です。
私がやっていることはawk
、2番目の列を取得するために使用することです。たとえば、すべてのファイルを削除したい場合(これは典型的なユースケースではありません)、次のようにします。
svn st | awk '{print $2}' | xargs rm
私はこれを何度も入力するので、自然な質問は次のとおりです:これをbashで実行するためのより短い(したがってよりクールな)方法はありますか?
注:私の具体的な例はsvnワークフローですが、私が求めているのは基本的にシェルコマンドの質問です。ワークフローがばかげていると感じて別のアプローチを提案した場合、私はおそらくあなたを反対票を投じませんが、他の人はそうする可能性があります。 。ありがとう:)