-1
我有多個源文件以ABC *開頭,我必須從每個文件中刪除第一行,有一個請讓我知道如何到達。如何通過命令或腳本從多個文件中刪除第一行
由於我是Unix新手,我可以刪除單個文件,如「tail -n +2」。 不知道如何刪除多個文件。
我有多個源文件以ABC *開頭,我必須從每個文件中刪除第一行,有一個請讓我知道如何到達。如何通過命令或腳本從多個文件中刪除第一行
由於我是Unix新手,我可以刪除單個文件,如「tail -n +2」。 不知道如何刪除多個文件。
您可以循環使用做到這一點:
for file in abc*; do
tail -n +2 $file
done
如果您需要保存編輯,您可以在tail
命令後添加>
重定向到tail
結果發送到一個新的文件。
用awk:
$ ls
bar baz foo
$ awk 'FNR==1{close(f);f="new-"FILENAME}FNR>1{print>f}' foo bar baz
$ ls
bar baz foo new-bar new-baz new-foo
解釋:
FNR==1 { close(f); f="new-"FILENAME } # 1st of each file, close previous file
FNR>1 { print>f } # after the 1st record print to file
您可以使用awk '...' ABC*
作爲文件名(S)。 new-ABC*
將被創建。
請提供一個代碼示例,以便我們能夠更好地爲您提供幫助。 –
謝謝!但是,當你提出堆棧溢出的問題時,這是**你**的標準過程。請參閱[這裏](http://stackoverflow.com/help/mcve)瞭解更多信息。 –
嗨,哈德森請找到這個例子。我的文件看起來像ABC123.dat,ABC234.dat。 ABC345.dat ,. ABC675.dat ,.從每個文件我需要刪除第一條記錄(整條線)。就像我有很多文件,每個文件名都以ABC *開頭。 – Deesh