将文件名添加到linux中的空文件中

时间:2015-10-12 13:58:06

标签: linux bash

我已经将文件名添加为下游步骤的标识符*。

使用以下命令

awk 'BEGIN{FS=OFS="\t"};
{print FILENAME, $0}' $i > appended.$i

说我有CELLLINE1.txt的文件内容为

chr2 1020120 1202420 5

按照上述命令我添加一个带有文件名的列

CELLLINE1.txt chr2 1020120 1202420 5

是否可以在没有内容的空文件(0字节)中执行相同的操作。

请提出任何建议

1 个答案:

答案 0 :(得分:1)

您可以使用if声明之外的awk执行此操作:

test 0 -eq $(wc -l test | cut -d" " -f 1)&& echo $i > appended.$i || awk 'BEGIN{FS=OFS="\t"};{print FILENAME, $0}' $i > appended.$i

您也可以使用一些变量在awk中执行此操作:

awk 'BEGIN{{FS=OFS="\t"}{linecount==0}}{linecount+=1}{print FILENAME, $0} END{if (linecount==0) print FILENAME}' $i > appended.$i

新变量linecount0设置为BEGIN,然后在END中进行测试,看它是否仍为0。如果是,则打印FILENAME