2016-04-10 18 views
1

2つのテキストファイルがあります。2番目のテキストファイルに従ってテキストファイルの行を並べ替える方法

ファイルA.TXT:

john 
peter 
mary 
alex 
cloey 

ファイル

peter does something 
cloey looks at him 
franz is the new here 
mary sleeps 

B.TXT私は

  • に応じて2
  • ソートつのファイルをマージしたいのですが他
  • put t彼末尾にBの未知のラインこのよう

john 
peter does something 
mary sleeps 
alex 
cloey looks at him 
franz is the new here 
+0

あなたは何を試しましたか? – isedev

答えて

2
$ awk ' 
    NR==FNR { b[$1]=$0; next } 
    { print ($1 in b ? b[$1] : $1); delete b[$1] } 
    END { for (i in b) print b[i] } 
    ' fileB fileA 
john 
peter does something 
mary sleeps 
alex 
cloey looks at him 
franz is the new here 

上記の「ランダム」ため(詳細はhttp://www.gnu.org/software/gawk/manual/gawk.html#Scanning-an-Array参照)にFILEBから残りの項目を表示します。それが問題ならば、あなたの質問を編集して、印刷する必要のある注文の要件を明確にしてください。

また、各ファイルのキーが一意であることを前提としています(例:peterは、 。そうでない場合は、質問を編集して、豊富な入力/出力に複数回表示されるキーを含むケースを追加し、どのように処理するかをさらに説明してください。

関連する問題