sed で削除と置換を行う方法は知っていますが、append コマンドの使用に問題があります。今、私はこれをやっています:
sed -i '' -e '/optima/d' file
これにより、ファイルから正しい行が削除されます (存在する場合)。ただし、ファイルの最後にもう 1 行追加したいのですが、2 行目に「echo something >> file」を使用することはできません。2回目のsed呼び出しも使用できません。
これを行うための構文は何ですか?
ここでのより良いアプローチは、ドロップしたい行以外をすべて印刷してから、最後の行を追加することです。これは、削除する行が最後の行であっても機能しますが、ケントのアプローチはこの場合には機能しません。
sed -i -n -e '/optima/!p' -e '$asomething' file
例:
$ seq 5 | sed -n -e '/5/!p' -e '$asomething'
1
2
4
something
また、ファイルの最後に別の行を追加したいと思います...
これを試して:
sed -i '' '/optima/d; $a \something' file
例:
kent$ seq 20|sed '/3/d; $a \yourText'
1
2
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20
yourText