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

posted @ 2019-12-09 10:04  橙子牛奶糖  阅读(1315)  评论(2编辑  收藏  举报