sed を使用して、最後から 3 番目の単語と最後から 2 番目の単語を除くすべての単語項目を削除します。

sed を使用して、最後から 3 番目の単語と最後から 2 番目の単語を除くすべての単語項目を削除します。

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

関連情報