Bash:テーブルに列を追加する

Bash:テーブルに列を追加する

テーブルに行の代わりに列を追加し、列の要素数が同じである必要がある場合はどうすればよいですか?

毎日変更されるファイルセットが与えられたら、それを追跡したいと思います。

例は次のとおりです。

file1 3443 words 11-20-13 44 4788 words 11-23-13 
file2 4457 words ...

答え1

あなたはユーティリティが欲しいpaste

paste history today > new_history

デフォルトでは、paste行は区切りですtab。このオプションを使用して変更できます-d

pasteマージするファイルの行数が同じで順序も同じで、ファイルのいずれかから削除する必要があるキーがない場合にのみ期待どおりに機能します。少し複雑なユーティリティについては、以下を参照してください。join

答え2

最も簡単な方法は、前日の出力を繰り返し、各行の終わりに希望の新しいコンテンツを含む行を印刷することです。

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt

はい

私があなたの行をファイルに入れてそれを呼び出すとしましょうprior.txt

file1 3443 words 11-20-13 44 4788 words 11-23-13
file2 4457 words ...

上記のコマンドを実行すると、次の結果が出力されます。

$ while read i; do printf "%s %s\n" "$i" "..new stuff.."; done < prior.txt
file1 3443 words 11-20-13 44 4788 words 11-23-13 ..new stuff..
file2 4457 words ... ..new stuff..

詳細

上記はwhileループを使用して各行を繰り返しますprior.txt。次に、変数と文字列にprintf含まれる行を印刷するために使用します。$i..new stuff..

..new stuff..上記の内容を自分のコンテンツに置き換えたり、ニーズに合わせて拡張したりできます。

関連情報