我使用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
提前感谢您,
Anthony
Birei对您的问题是正确的。但你的AWK表达似乎不仅仅对第1行感兴趣。您可以将其替换为:
'NR==1 {print substr($0, 4, 1)}'
然后你可以做一个简单的:
echo "$delimiter"
shell正在解释delimiter
变量的内容。你需要引用它来避免这种行为:
echo "${delimiter}"
它将打印*