如何通过命令或脚本从多个文件中删除第一行

时间:2017-04-12 17:24:25

标签: unix

我有多个源文件以ABC *开头,我必须从每个文件中删除第一行,有些请告诉我如何联系。

由于我是Unix新手,我可以删除单个文件,如" tail -n +2"。 不知道如何删除多个文件。

2 个答案:

答案 0 :(得分:0)

您可以使用for循环执行此操作:

for file in abc*; do
    tail -n +2 $file
done

如果您需要保存修改,可以在>命令后添加tail重定向,以将tail的结果发送到新文件。

答案 1 :(得分:0)

使用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*作为文件名。将创建new-ABC*