我在这方面很新,并尝试遍历大约 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