複数の文書の特定の行の比較

複数の文書の特定の行の比較

複数のドキュメントの特定の行を比較したいです。 diffとcommを使ってみましたが、条件はこんな感じです。

  1. ドキュメントは別の作業ディレクトリ/フォルダにあり、ここでは(* .doc)などのワイルドカードを使用できます。

    File 1  ---> /home/user/file1/1.doc
    File 2  ---> /home/user/file2/2.doc
    File 3  ---> /home/user/file3/3.doc
    
  2. 以下は、すべての文書(* .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. 最後に、この行が同じかどうかにかかわらず、別のファイルで生成することです。

ベストアンサー1

あなたの質問で私が理解したように、各ファイルから2行と3行だけをインポートして新しいファイルに出力したいと思います。これを行うスクリプトは次のとおりです。

find . -name "*.doc" | xargs awk 'FNR==2||FNR==3{print}' > new_file

xargsawk出力の各ファイルが処理されますfindawk行2と3は、提供された各新しいファイルから印刷されます。

パスにスペースがある場合:

find . -name "*.doc" -print0 | xargs -0 awk 'FNR==2||FNR==3{print}' > new_file

おすすめ記事