0

ファイルから上位 2 行 (180 行のセット) を抽出して、ファイルを 6 ~ 6 行のセットにグループ化すると、最初の 2 行が出力として得られるようにしたいと考えています。したがって、1 番目、2 番目に続いて 7 番目、8 番目などを取得できるはずです。これに sed を使用してみましたが、目的の出力が得られませんでした。

ここに実装するロジックを提案してください。

私の要件は、6 行のセットごとに、最初の 2 行にいくつかの変更を加える (特定の文字を削除するなど) ことです。

例:

This is line command 1 for my configuration
This is line command 2 for my configuration
This is line command 3 for my configuration
This is line command 4 for my configuration
This is line command 5 for my configuration
This is line command 6 for my configuration

私が望む出力は次のとおりです。

This is line command 1
This is line command 2 
This is line command 3 for my configuration
This is line command 4 for my configuration
This is line command 5 for my configuration
This is line command 6 for my configuration

これは、180 コマンドのうち 6 コマンドごとに繰り返す必要があります。

4

2 に答える 2

2

行番号 / 6 の除算の法を使用してそれを行うことができます。それが 1 または 2 の場合は、その行を出力します。それ以外の場合は、しないでください。

awk 'NR%6==1 || NR%6==2' file

NRデフォルトのレコードは行であるため、この場合は「行数」です。||「または」の略です。print最後に、のデフォルトの動作であるため、を記述する必要はありませんawk

例:

$ seq 60 | awk 'NR%6==1 || NR%6==2'
1
2
7
8
13
14
19
20
25
26
31
32
37
38
43
44
49
50
55
56

更新に基づいて、これにより次のことが可能になります。

$ awk 'NR%6==1 || NR%6==2 {$6=$7=$8=$9} 1' file
This is line command 1   
This is line command 2   
This is line command 3 for my configuration
This is line command 4 for my configuration
This is line command 5 for my configuration
This is line command 6 for my configuration
This is line command 7   
This is line command 8   
This is line command 9 for my configuration
This is line command 10 for my configuration
This is line command 11 for my configuration
This is line command 12 for my configuration
This is line command 13   
This is line command 14   
This is line command 15 for my configuration
This is line command 16 for my configuration
This is line command 17 for my configuration
This is line command 18 for my configuration
This is line command 19   
This is line command 20   
This is line command 21 for my configuration
This is line command 22 for my configuration
This is line command 23 for my configuration
This is line command 24 for my configuration
于 2013-09-20T09:03:14.973 に答える