
複数のドキュメントの特定の行を比較したいです。 diffとcommを使ってみましたが、条件はこんな感じです。
ドキュメントは別の作業ディレクトリ/フォルダにあり、ここでは(* .doc)などのワイルドカードを使用できます。
File 1 ---> /home/user/file1/1.doc File 2 ---> /home/user/file2/2.doc File 3 ---> /home/user/file3/3.doc
以下は、すべての文書(* .doc)の特定の行(2〜3行)を比較することです。
たとえば、次の文書の2行(年齢)と3行(性別)をインポートしたいとします。
1.文書
Name: abc
Age: 123
Gender: m
Contact No.: 222 2222
2.文書
Name: bca
Age: 321
Gender: F
Contact No.: 333 3333
3.文書
Name: bca
Age: 321
Gender: F
Contact No.: 333 3333
- 最後に、この行が同じかどうかにかかわらず、別のファイルで生成することです。
答え1
あなたの質問で私が理解したように、各ファイルから2行と3行だけをインポートして新しいファイルに出力したいと思います。これを行うスクリプトは次のとおりです。
find . -name "*.doc" | xargs awk 'FNR==2||FNR==3{print}' > new_file
xargs
awk
出力の各ファイルが処理されますfind
。awk
行2と3は、提供された各新しいファイルから印刷されます。
パスにスペースがある場合:
find . -name "*.doc" -print0 | xargs -0 awk 'FNR==2||FNR==3{print}' > new_file