ファイルの最初のn行を上書きします。

ファイルの最初のn行を上書きします。

7GBのテキストファイルがあり、
ファイルの最初のn行(n = 50と仮定)を編集する必要があります
。次のようにしようとします。

head -n 50 myfile >> tmp
vim tmp # make necessary edits
substitute first 50 lines of myfile with the contents of tmp
rm tmp

ここで手順3をどのように実行しますか?一般的な問題に対するより良い解決策も感謝します。注:この環境にはGUIはありません。

答え1

man tail説明する:

   -n, --lines=[+]NUM
          output the last NUM lines, instead of the last 10;
          or use -n +NUM to output starting with line NUM

したがって、あなたはできます

tail -n +51 myfile >>tmp

答え2

バックアップする

cp fileorig.txt fileold.txt

tmp.txtに50行コピー

head -n 50 fileorig.txt > tmp.txt

vimを使って必要な編集をする

vim tmp.txt

3Dオブジェクトを作成するには

まず、sedを使用して最初の50行を削除します。

sed -i 1,50d fileorig.txt

次に、新しいファイルのcat tmpedited+fileorig.txt

cat tmp.txt fileorig.txt > filenew.txt

問題が発生した場合は、バックアップの復元が必要な場合はfilenew.txtを参照してください。

cp fileold.txt fileorig.txt

答え3

解決策が見つかりました

head -n 50 myfile > tmp
vim tmp # make necessary edits
cat tmp > result
tail -n 50 myfile >> result
# result now contains the edited myfile

関連情報