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

pid*_*oma 4 linux bash awk sed

我对此非常陌生,并尝试遍历大约19000个文件(所有在一个目录中),以便在每个文件的每一行的开头插入相应的文件名.

我稍后将连接这些文件以获取包含我分析所需的所有数据的文件.

文件名显示以下模式:

V_foo_V_barV_每个文件名中 的两个部分是不变的.其余的各不相同.

我试过了:

for f in V*; do awk '{print "$f" $} file 
Run Code Online (Sandbox Code Playgroud)

我做了这个,有没有括号$f,两个都没有用.

使用括号将字符串$f插入到文件名中.如果没有paretheses,则不插入任何内容

非常感谢帮助,因为我已经尝试了一些其他同样徒劳的想法,我的挫折敲开了我的门

非常感谢.

jay*_*ngh 10

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

awk '{print FILENAME, $0}' V*
Run Code Online (Sandbox Code Playgroud)

FILENAME是一个内置变量,带有文件名. V*将为您目录中的所有文件添加glob.

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

awk '{print FILENAME " : " $0}' V*
Run Code Online (Sandbox Code Playgroud)