脚本:
#!/bin/ksh
FILENAME=$1
while read RECORD VALUE
do
echo ${RECORD} ${VALUE} "X"
done <"$FILENAME"
输入文件:
A 1
B 2
脚本的输出:
X1
X2
如果我从echo&#34; x&#34;中删除,例如
echo ${RECORD} ${VALUE}
我正在
A 1
B 2
出了什么问题?
更新:
如果我做
echo "X" ${RECORD} ${VALUE}
正确打印:
X A 1
X B 2
和:
echo ${RECORD} "X"
也打印正确,所以我猜测问题是VALUE,可能包含返回马车符号(因为输入文件是在Windows上创建的)
答案 0 :(得分:0)
在循环内添加:
VALUE=`echo $VALUE| tr -d '\r'`
解决了这个问题,如果您有更好的解决方案,那么您会受到欢迎。
答案 1 :(得分:0)
可以使用参数扩展运算符从值的末尾删除字符(如果存在)。
VALUE=${VALUE%$'\r'}
这是在shell中处理的,无需启动新进程。