次の行を含むファイルが提供されます。
1. 1
2. 2
3. 3
4. 4
5. 5
「sed」コマンドを実行します。
sed -i "/4/a\text\" filename.txt
ファイルは次のようになります。
1. 1
2. 2
3. 3
4. text
5. 4
今、「5」を表す行が消えました。
ファイルの行数が変更されていないかのように、最後の行が遅れているようです。
私が実行したコマンドは、「所定の位置に挿入」を意味する「-i」フラグを使用しませんでした。
sed "/3/a\text\" filename.txt > temp.txt; mv temp.txt filename.txt;
ただし、「in-place」フラグが指定されていない場合でも、同じ効果が表示されます。これが'sedの意図された機能ですか?行を追加する方法はありますか?
ベストアンサー1
テキスト行を追加するには、簡単な引用符を使用できます。
例:
[root@h2g2w ~]# sed -i '/4/a\text\' toto
[root@h2g2w ~]# cat toto
1
2
3
4
text
5
[root@h2g2w ~]#
これもうまくいきます...使用しているsedのバージョンはGnuのバージョンですか?二重引用符も機能します(ただし、ここで使用するのはユーザーエラーです)。
[root@h2g2w ~]# sed -i "/4/a\text\ " toto
[root@h2g2w ~]# cat toto
1
2
3
4
text
text
5
[root@h2g2w ~]#