を使用して、ファイルから特定の行を取得できます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