N行次の行を削除するためにawkを使用しようとしていますが、正しく実行できないようです。ファイル形式はこんな感じ
YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX
実際の例は
office3
3
1
office3
6
1
office3
6
3
office3
1
1
行YYまたは「オフィス」行を削除する方法。内容に関係なく、2行ごとに削除する必要があります。
答え1
GNU sedがある場合は、アドレス表記を使用できますn~m
(n
スキップ)。m
sed '1~3d' file
最初の行から3行ずつ削除します。
答え2
モジュロ行のみを選択しN
てください。awk
awk '!(NR%2)' file
または
awk 'NR%3==0' file
これはNR
、これまでに処理された行数を表します。
特定の場合(すべての行を削除Y
):
$ echo 'YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX' | awk '!(NR%3==1)'
XXXXXX
XXXXXX
XXXXXX
XXXXXX