我正在使用ksh
脚本来确定文件中的分隔符使用awk
。我知道这个分隔符将始终位于第一行的4位置。我遇到的问题是在特定文件中用作分隔符的字符是*
,因此在脚本返回文件列表时,不是在变量中返回*
。以下是我的文件中的示例文本以及我的脚本:
文件中的文字:
XXX*XX* *XX*XXXXXXX.......
这是我的脚本看起来的样子(我没有在我面前的剧本,但是你得到了这个小说):
delimiter=$(awk '{substr $0, 4, 1}' file.txt)
echo ${delimiter} # lists files in directory..file.txt file1.txt file2.txt instead of * which is the desired result
提前谢谢你,
安东尼
答案 0 :(得分:1)
Birei对你的问题是正确的。但是你的AWK表达似乎只对第一行感兴趣。您可以将其替换为:
'NR==1 {print substr($0, 4, 1)}'
然后你可以做一个简单的事情:
echo "$delimiter"
答案 1 :(得分:0)
shell正在解释delimiter
变量的内容。您需要引用它以避免此行为:
echo "${delimiter}"
它会打印*