我已经将文件名添加为下游步骤的标识符*。
使用以下命令
awk 'BEGIN{FS=OFS="\t"};
{print FILENAME, $0}' $i > appended.$i
说我有CELLLINE1.txt的文件内容为
chr2 1020120 1202420 5
按照上述命令我添加一个带有文件名的列
CELLLINE1.txt chr2 1020120 1202420 5
是否可以在没有内容的空文件(0字节)中执行相同的操作。
请提出任何建议
答案 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
新变量linecount
在0
设置为BEGIN
,然后在END
中进行测试,看它是否仍为0
。如果是,则打印FILENAME