1

我正在使用ksh脚本来确定文件中的分隔符使用的是awk. 我知道这个分隔符将始终位于第一行的 4 位置。我遇到的问题是,在特定文件中用作分隔符的字符是 a *,因此*脚本不是在变量中返回,而是返回一个文件列表。这是我的文件中的示例文本以及我的脚本:

文件中的文本:

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

提前谢谢你,
安东尼

4

2 回答 2

1

Birei对你的问题是正确的。但是您的 AWK 表达式似乎并不只对第一行感兴趣。您可以将其替换为:

'NR==1 {print substr($0, 4, 1)}'

然后你可以做一个简单的:

echo "$delimiter"
于 2013-07-24T11:30:52.290 回答
0

shell 正在解释delimiter变量的内容。您需要引用它以避免这种行为:

echo "${delimiter}"

它会打印*

于 2013-07-24T07:47:25.600 回答