sedを使用して、3番目の単語と最後から2番目の単語を除くすべての単語を削除しようとしています。たとえば、入力が次のような場合です。
1 liam
2 liam
3 liam
4 liam
5 liam
6 liam
出力は次のようになります。
1
2
3 liam
4
5 liam
6
答え1
したがって、可能であればawkを使用して処理できます。フィールド区切り文字を置き換える単語に設定します。正規表現文字がないとします。次に、レコード区切り文字を空の正規表現に設定し、フィールドを繰り返します。フィールド区切り文字を最後から3番目と3番目に置き換えます。
$ awk -F 'liam' '
{
for (i=1;i<NF-1; i++) {
if (i==3||i==NF-2) {
sub(/$/, FS, $i)
}
}
}
1' RS='^$' OFS= file