我在名为.csv
的目录中有多个mydirectory
个文件。每个文件都包含以#GENE_ANNOTATIONS
开头的行。我想删除此行之前的所有行,包括此行加上此行下面的一行。我希望将其应用于所有文件并保存。是否有任何unix / awk / perl命令来执行此操作?
答案 0 :(得分:3)
使用GNU sed:
sed -i '0,/^#GENE_ANNOTATIONS/{/^#GENE_ANNOTATIONS/{N};d;}' mydirectory/*
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed -ni '/^#GENE_ANNOTATIONS/,$!b;n;n;:a;p;n;ba' mydirectory/*
只需启用-n
开关即可打印所需的行。
另一种选择:
sed '/^#GENE_ANNOTATIONS/,$!d;x;/./{g;b};x;h;N;d' mydirectory/*