1

sed で削除と置換を行う方法は知っていますが、append コマンドの使用に問題があります。今、私はこれをやっています:

sed -i '' -e '/optima/d' file

これにより、ファイルから正しい行が削除されます (存在する場合)。ただし、ファイルの最後にもう 1 行追加したいのですが、2 行目に「echo something >> file」を使用することはできません。2回目のsed呼び出しも使用できません。

これを行うための構文は何ですか?

4

2 に答える 2

4

ここでのより良いアプローチは、ドロップしたい行以外をすべて印刷してから、最後の行を追加することです。これは、削除する行が最後の行であっても機能しますが、ケントのアプローチはこの場合には機能しません。

sed -i -n -e '/optima/!p' -e '$asomething' file

例:

$ seq 5 | sed -n -e '/5/!p' -e '$asomething'
1
2
4
something
于 2016-11-16T12:10:30.820 に答える
0

また、ファイルの最後に別の行を追加したいと思います...

これを試して:

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
于 2013-03-26T13:43:36.270 に答える