2

を使用して、ファイルから特定の行を取得できますsed。この行または段落を取得して、別のファイルの特定の行に挿入する簡単な方法はありますか?

sed -n 1,10p >> foo結果をに追加します。これにより、結果fooが下部に配置されます。特定の行に挿入するための標準のUNIXツールはありますか?

4

3 に答える 3

6

sedおそらくあなたはのrコマンドを探していますか?

sed '123r file.txt' main.txt

file.txtの123行目に内容を挿入し、main.txtすべてを標準出力に出力します。

(オプションがある場合sedは、直接-i変更することができますmain.txt。それ以外の場合は、入力ファイルは変更されません。)

于 2012-08-27T06:33:59.310 に答える
3

nファイルの3行目を置き換えたい場合は、次のfooように行うことができます。

cp foo foo.tmp
head -n $((n-1)) foo.tmp > foo
echo "newline" >> foo
tail -n +$((n+1)) foo.tmp >> foo

したがって、最初のn-1行を。で取得しhead -n NR、新しい行を追加してから、残りを。で始まる行から追加n+1しますtail -n +NR

于 2012-08-27T06:22:58.367 に答える
0

これはあなたのために働くかもしれません(GNU sed):

sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt
于 2012-08-27T21:06:17.617 に答える