2011-03-01 7 views
4

awkコマンドを使用してファイル内の特定の行を探し、これを2番目のファイルに追加します。この点で誰かが私を助けることができますか?ファイルの先頭にテキストを付けます

+1

「追加」は後に続くことを意味します。何かの始まりに何かを "追加"することはできません。それには「[Prepend](http://dictionary.reference.com/browse/prepend)」という言葉があります。 – meagar

答えて

11

に見えます。一時ファイルが必要です。

echo "Prepended Line" > tmpfile && cat origfile >> tmpfile && mv tmpfile origfile 

編集:行を付加する

sed -i 's/\(line you want\)/Prefix \1/g' origfile 
+0

これは、テキストを1行目と前の1行目を2行目として追加しますが、1行にしたいです。 – Shweta

+0

これはもう少し簡単です。編集されました。 – Daenyth

+3

+1また、 'sed -i '/あなたが望む行/ s/^/Prefix/g' origfile'または' sed -i '1s/^/Prefix/g' origfile'(後者はOPの自己に基づいています回答: –

0

私はcatの後に2番目のファイルにダミーファイルcatを書き込んだ後、2番目のファイルをダミーで上書きします。短い答えは、あなたができないことであるあなたは、「天然」(しかし間違った)を行うことができますsponge(1)コマンド、awk ... | cat - second-file > second-file

+0

2行目のファイルの既存の最初の行に新しい行を追加したい – Shweta

0
awk '{if(NR==1){print "text" $0}else{print }}' O/Pfile temp 
mv temp O/Pfile 
+1

短い: 'awk 'NR == 1 {print" text "$ 0}' O/Pfile> temp; mv temp O/Pfile' –

0

さまざまな方法:ファイルを付加する

(echo 'line to prepend';cat file)|sponge file 
sed -i '1iline to prepend' file # GNU 
sed -i '' $'1i\\\nline to prepend\n' file # BSD 
printf %s\\n 0a 'line to prepend' . w|ed -s file 
perl -pi -e 'print"line to prepend\n"if$.==1' file 

さまざまな方法:

cat file_to_prepend file|sponge file 
{ rm file;cat file_to_prepend ->file; }<file 
sed -i '1{h;s/.*/cat file_to_prepend/ep;g}' file # GNU 
printf %s\\n '0r file_to_prepend' w|ed -s file 
sed -i -e 1rfile_to_prepend -e '1{h;d}' -e '2{x;G}' file 
関連する問題