将文件名附加到制表符分隔文件中每行开头的循环(从而生成一个新列))



我在这方面很新,并尝试遍历大约 19000 个文件(全部在一个目录中),以便在每个文件的每一行的开头插入相应的文件名。

稍后,我将连接这些文件,以获得一个包含分析所需的所有数据的文件。

文件名显示以下模式:

V_foo_V_bar每个文件名中的两个V_部分是常量。其余的各不相同。

我试过了:

for f in V*; do awk '{print "$f" $} file 

我这样做时周围有括号和没有括号$f两者都不起作用。

带括号的字符串$f插入到文件名中没有帕雷特,什么都不插入

帮助将不胜感激,因为我已经尝试了其他一些同样徒劳的想法和敲门的沮丧

多谢。

要在每个文件的每一行的开头插入文件名,请尝试如下操作:

awk '{print FILENAME, $0}' V*

FILENAME 是带有文件名的内置变量。 V*将 glo 到目录中的所有文件。

如果您希望在名称和行之间放置分隔符,您可以执行以下操作:

awk '{print FILENAME " : " $0}' V*

尝试:

for f in V*; do sed -i "s/^/$ft/" "$f"; done

这假设没有文件名包含尴尬的字符,例如 * 。不过,空间应该没问题。

谢谢Jaypal,它解决了我遇到的类似问题。我修改了您的答案以添加文件名并连接文件

awk '{print FILENAME " : " $0}' V* >> all.csv

相关内容

  • 没有找到相关文章

最新更新