を使用して、ファイルから特定の行を取得できますsed
。この行または段落を取得して、別のファイルの特定の行に挿入する簡単な方法はありますか?
sed -n 1,10p >> foo
結果をに追加します。これにより、結果foo
が下部に配置されます。特定の行に挿入するための標準のUNIXツールはありますか?
sed
おそらくあなたはのr
コマンドを探していますか?
sed '123r file.txt' main.txt
file.txt
の123行目に内容を挿入し、main.txt
すべてを標準出力に出力します。
(オプションがある場合sed
は、直接-i
変更することができますmain.txt
。それ以外の場合は、入力ファイルは変更されません。)
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
。
これはあなたのために働くかもしれません(GNU sed):
sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt