通过脚本打开文件时,我获得了与实际包含的字符串不同的字符串

时间:2013-03-08 17:57:05

标签: shell

我有一个脚本,它会查看这样的文件:

for item in `more $dir_tmp/$lcl_ident_cnl.root.tmp`
    do
        txtPos=`expr index "$item" "."`
...

这让我想到了这个:

+ more /gcamp/dbm/processos/temp/tlv.root.tmp
+ expr index :::::::::::::: .

但是,这个文件实际上包含“wca”:

$ for item in `cat tlv.root.tmp`
> do
>  echo "${item}"
> done
wca

此文件的编码是

$ file tlv.root.tmp
tlv.root.tmp: ASCII text

为什么检索::::::::::::::而不是wca

2 个答案:

答案 0 :(得分:1)

这些冒号字符看起来很可疑,就像提示 more(1) 在等待您的命令时提供的那样。

more之类的程序不打算编写脚本,也许你应该在两个脚本中都使用cat

答案 1 :(得分:1)

很多更好的方式可能是

while read -r item
do
  txtPos=`expr index "$item" "."`
done < "$dir_tmp/$lcl_ident_cnl.root.tmp"

感谢chepner