linux - 如何使用数据来自哪里的数据打印文件名?

标签 linux shell unix

我在路径 1 中有下面提到的文件,

fb1.tril.cap
fb2.tril.cap
fb3.tril.cap

例如文件fb1.tril.cap中的数据如下所示,

AT99565 150 500 (DEST 81) 
AT99565 101 501 (DEST 883) 
AT99565 152 502 (419) 

例如文件fb2.tril.cap中的数据如下所示,

AT99565 103 1503 (DEST 165) 
AT99565 104 154  (DEST 199) 

例如文件fb3.tril.cap中的数据如下所示,

RT61446 80 863 (DEST 968) 
RT20447 32 39 (DEST 570) 
RT51224 73 74 (592) 

我编写了如下所示的代码来打印我的必填字段,

while read file_name
do
cat ${file_name} | awk -F' ' '$4 == "(DEST" { print 
$1, $2, $3, $5}' | awk -F')' '{print  $1, $2, $3, $4}' | uniq >> output.csv
done < path_1

我低于输出,

AT99565 150 500 81
AT99565 101 501 883
AT99565 103 1503 165
AT99565 104 154  199
RT61446 80 863 968
RT20447 32 39 570

但我还想打印文件名以及来自数据来源的数据,如下所示,

AT99565 150 500 81 fb1.tril.cap
AT99565 101 501 883 fb1.tril.cap
AT99565 103 1503 165 fb2.tril.cap
AT99565 104 154  199 fb2.tril.cap
RT61446 80 863 968 fb3.tril.cap
RT20447 32 39 570 fb3.tril.cap

任何人都可以通过打印文件名和数据来帮助我完成我的工作。提前致谢。

最佳答案

首先,我无法测试我的代码解决方案,但此代码可能会为您运行。

while read file_name
do
cat ${file_name} | awk -F' ' '$5 == "(DEST" { print 
$1, $2, $3, $5}' | awk -F')' '{print  $1, $2, $3, $4, $file_name}' | uniq >> output.csv
done < path_1

关于linux - 如何使用数据来自哪里的数据打印文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53648511/

相关文章:

c++ - Ubuntu Make 文件错误

c++ - 如何允许并正确加载.so 文件的修改?

linux - 如何温和地杀死rsync?

linux - 如何在 Perl 中找到图形的连通分量?

linux - 在 Linux IA-32 汇编程序 (gas) 上创建一个子字符串

linux - 是否所有命令 shell 脚本都有一个通用名称?

Shell:将数据放在一起

linux - Linux ShellScript 问题

bash - 使用 awk 将行中的变量存储在文本文件中并切入 for 循环

linux - 在 Unix Shell 脚本中写出意外的新行