0
ファイル1の形式からファイル2の形式(下記)に変換したいと考えています。 名前、最初の数字のグループ、wwwで区切られた2番目の数字のグループの3つの部分を持つタブ区切りのファイル1(最初の2行以下ですが、ファイルに1000行が入ります)があります。 ファイル2(下記)の形式に変換したいと思います。特定の名前のFile1の複数のエントリが別々の行に分割されている場合、分割されます。カラムはタブで区切られ、4つのカラムがあります:name、+、File1の2番目のグループの番号、File1.Iの最初のグループの番号です。私は本当にあなたの助けに感謝します。これらの形式をUNIXで変換する方法
ファイル1
NAME_1 WWW 5 WWW 17 23
NAME_2 WWW 7 54 14 WWW 300 16 29
NAME_3 WWW 6 WWW 26
...
〜
ファイル2
NAME_1 + 17 5
NAME_1 + 23 5
NAME_2 + 300 7
NAME_2 + 16 54
NAME_2 + 29 14
NAME_3 + 26 6
...
ありがとうございますが、残念ながらそれは私のためには機能しません。私が間違っていることを示すことができますか?また、この部分n =(NF-3/2)は何を説明することができますか?ここで私のコマンドはawk '{n =(NF-3)/ 2 for(i = 1; i <= n; i ++)print $ 1、 "+"、$(2 + i)、$(NF-n + i i = 1; i <= n; i ++)の場合、$ 1、 "+"、$(2 + i)を出力するためにawk:{n =(NF-3)/ 2} 、$(NF-n + i)} awk:^構文エラー – fattel
これを1行に書くと、 'for'の前にセミコロンが必要です。 –
' NF'は現在のレコードのフィールド数です。数学に従ってそれを理解しようとするだけです。 –