string中的第N个字
在Bash中,我想要得到一个string的第N个单词。
例如:
STRING="one two three four" N=3
结果:
"three"
什么Bash命令/脚本可以做到这一点?
echo $STRING | cut -d " " -f $N
替代
N=3 STRING="one two three four" arr=($STRING) echo ${arr[N-1]}
使用awk
echo $STRING | awk -v N=$N '{print $N}'
testing
% N=3 % STRING="one two three four" % echo $STRING | awk -v N=$N '{print $N}' three
STRING=(one two three four) echo "${STRING[n]}"
没有昂贵的叉子,没有pipe道,没有bashisms:
$ set -- $STRING $ eval echo \${$N} three
但要小心globbing。