次のファイルの挿入メソッドはsed
、最後の行の前でも機能していましたが、それ以上は機能していませんでした。現在のバグsed
ですか?
sedでファイルメソッドを挿入するデモ:
mkdir /tmp/test
printf '%s\n' {1..3} > /tmp/test/f1
printf '%s\n' {one,two,three,four,five,six,seven,eight,nine,ten} > /tmp/test/f2
$ cat /tmp/test/f2 | sed -e "/nine/r /tmp/test/f1" -e //N
one
two
three
four
five
six
seven
eight
1
2
3
nine
ten
$ head -9 /tmp/test/f2 | sed -e "/nine/r /tmp/test/f1" -e //N
one
two
three
four
five
six
seven
eight
nine
1
2
3
$ cat /tmp/test/f2 | sed -e "/ten/r /tmp/test/f1" -e //N
one
two
three
four
five
six
seven
eight
nine
ten
1
2
3
$ sed --version
GNU sed version 4.2.1
...
つまり、lineメソッドの前にファイルを挿入すると、最後の行を除くすべての場所で機能します。以前は機能していました。現在のバグsed
ですか?
ありがとう
あなたがいるのであなたはgnu sed
使うことができます
'e [COMMAND]'
This command allows one to pipe input from a shell command into
pattern space.
ラの$
トンライン:
sed '$e cat insert.txt' file
ed
(交換する,p
とw
、あなたが編集中-場所にしたい場合):
ed -s file<<IN
- r insert.txt
,p
q
IN
または
ed -s file <<< $'-1 r insert.txt\n,p\nq\n'
ed
読み取り時file
、現在のアドレスは$
緯度線に設定されます。-
(または-1
)は、現在のアドレスを(ie $-1
)の1行前に設定し、現在の行の後にr
読み込みますinsert.txt
。,p
テキストバッファの内容を出力し(前述のように、w
変更を保存するにはに置き換えます)、q
エディタを終了します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加