awk:for循环输出文件名


简单来说,有file1.txt, file2.txt, file3.txt

file1.txt如下:

1 a 4
d d g

file2.txt如下:

2 b g
6 9 0

file3.txt如下:

g h g
0 8 h

我现在想把这三个文件的第二列和各自对应的文件名都打印出来,并且追加到一个文件,命名为all.txt

all.txt的内容如下所示:

a file1.txt
d file1.txt
b file2.txt
9 file2.txt
h file3.txt
8 file3.txt

如何实现上方的需求呢,这里提供两种方法。

第一种,是加上FILENAME方式。

比如。

for i in *.txt
do
echo $i
awk ' {print $2,FILENAME}' >> all.txt
done

第二种。是不加FILENAME方式。

for i in *.txt
do
echo $i
awk ' {print $2,"'"${i}"'"}' >> all.txt
done


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM