巨大なファイルの最初の数行をコピーし、いくつかのLinuxコマンドを使用してファイルの最後にテキスト行を追加するにはどうすればよいですか?


89

Linuxコマンドを使用して、巨大なファイルの最初の数行をコピーし、その最後にテキスト行を追加するにはどうすればよいですか?


1
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv
Bashで

回答:


147

headコマンドは、最初に取得することができますn行を。バリエーションは次のとおりです。

head -7 file
head -n 7 file
head -7l file

これは、と呼ばれるファイルの最初の7行を取得します"file"。使用するコマンドは、のバージョンによって異なりますhead。Linuxは最初のもので動作します。

同じファイルの末尾に行を追加するには、次を使用します。

echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file

または:

echo 'first line to add
second line to add
third line to add' >>file

ワンヒットでそれを行う。

したがって、これら2つのアイデアを結び付けて、input.txtファイルの最初の10行を取得し、output.txt5"="文字の行を追加する場合は、次のように使用できます。

( head -10 input.txt ; echo '=====' ) > output.txt

この場合、出力ストリームを1つに統合するために、サブシェルで両方の操作を実行します。これは、出力ファイルの作成または上書きに使用されます。


21

あなたが達成しようとしているのは、テキストファイルの最初の数行の後に行を挿入することだと思います。

head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt

ファイルの残りの行を残したくない場合は、末尾の部分をスキップしてください。


3
サブシェルは、出力ファイルを再オープンすることなく、あなたがこれをやらせる:(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
ホッブズ

5

最初の数行:man head

>>を追加:Bashで演算子(?)を使用します:

echo 'This goes at the end of the file' >> file
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.