我需要在每行的末尾添加文件名.. 我就是这样做的。
files=($(ls | grep -i -E 'XYZ_'))
length=${#files[*]}
for ((i=0;i<=$(($length - 1)); i++))
do
sed "s/$/$(basename ${files[$i]}) /g" ${files[$i]} >> output
done
问题是结果..
这是一条线 20170302105D AAA.AAAE AR 1111 HHH1,0PPP
这是
的方式20170302105D AAA.AAAE AR 1111 HHH1,0PPPXYZ_FILENAME
或
20170302105D AAA.AAAE AR 1111 HHH1,0PPP XYZ_FILENAME
这是结果
20170302105D AAA.AAAE AR 1111 HHH1,0PPP
XYZ_FILENAME
20160307205D bbb.bbbE AR 12511 HHH1,0PPP
XYZ_FILENAME
因此它将文件名附加为新行.. 我该如何解决?
谢谢
答案 0 :(得分:2)
事实证明,Windows行结尾导致了这些问题。
无论如何,我建议使用这个awk
命令。
awk '{print $0, FILENAME}' *XYZ_*
(这就是全部,没有shell循环)