问题描述
我需要在每一行的末尾添加文件名..我就是这样做的..
I need to add the filename at the end of each line..this is how I do it..
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
here's a line20170302105D 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
XYZ_FILENAME
20160307205D bbb.bbbE AR 12511 HHH1,0PPP
20160307205D bbb.bbbE AR 12511 HHH1,0PPP
XYZ_FILENAME
XYZ_FILENAME
因此它将文件名附加为新行..我该如何解决?
So it appends the filename as a new line..How can I solve it?
谢谢
推荐答案
结果是 Windows 行尾导致了这些问题.
It turned out that Windows line endings were causing the issues.
无论如何,我建议为此使用这个单一的 awk
命令.
Anyhow I recommend to use this single awk
command for that.
awk '{print $0, FILENAME}' *XYZ_*
(就是这样,没有shell循环)
(that's all, no shell loop)
这篇关于将文件名附加到每一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!