使用perl或shell将文件名插入到同一文件中

时间:2017-09-22 20:05:23

标签: linux perl multiple-files

我有多个文件,我需要将文件名作为新字段放入每个通讯文件中。

示例:

My directory

Sample1.txt Sample3.txt
Sample2.txt Sample4.txt

我已进入每个文件 head Sample1.txt

 hg1 1 20 
 hg1 40 60

我需要每个文件

head Sample1.txt

hg1 1 20 Sample1
hg1 40 60 Sample1

我可以手动制作,但我有一堆文件。有人可以帮助我使用循环为所有文件制作吗?

谢谢

1 个答案:

答案 0 :(得分:0)

#!/bin/bash

for vari in $(ls test?); do
  gawk -v fname=$vari '{print $0 " " fname}' $vari > $vari.bak
  mv -f $vari.bak $vari 
done

在上面的例子中,我用过测试? ;最后的答案需要文件名模式或字面上的输入文件列表。这有效。