我已经将文件名添加为下游步骤的标识符 *。
使用以下命令
awk 'BEGIN{FS=OFS="\t"};
{print FILENAME, $0}' $i > appended.$i
假设我有 CELLLINE1.txt 的文件内容
chr2 1020120 1202420 5
按照上述命令,我添加了一个包含文件名的列
CELLLINE1.txt chr2 1020120 1202420 5
是否可以在没有内容的空文件(0 字节)中做同样的事情。
有什么建议吗
最佳答案
您可以在 awk
语句之外使用 if
来执行此操作:
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
在BEGIN
设置为0
,然后在END
测试是否它仍然是 0
。如果是这样,它会打印 FILENAME
关于linux - 将文件名添加到linux中的空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083083/