Mik*_*ohn 2 unix bash append line
我需要在每一行的末尾添加文件名..这就是我的做法..
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
Run Code Online (Sandbox Code Playgroud)
问题是结果。。
这是一条线 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_文件名
20160307205D bbb.bbbE AR 12511 HHH1,0PPP
XYZ_文件名
所以它将文件名附加为新行..我该如何解决?
谢谢
事实证明,Windows 行尾导致了这些问题。
无论如何,我建议为此使用这个单一awk
命令。
awk '{print $0, FILENAME}' *XYZ_*
Run Code Online (Sandbox Code Playgroud)
(就是这样,没有外壳循环)