テーブルに行の代わりに列を追加し、列の要素数が同じである必要がある場合はどうすればよいですか?
毎日変更されるファイルセットが与えられたら、それを追跡したいと思います。
例は次のとおりです。
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..
上記の内容を自分のコンテンツに置き換えたり、ニーズに合わせて拡張したりできます。