我是 bash 脚本新手,我正在学习命令的工作原理,我遇到了这个问题,
我有一个文件/home/fedora/file.txt
文件内部是这样的:
[apple] This is a fruit.
[ball] This is a sport's equipment.
[cat] This is an animal.
我想要的是检索“[”和“]”之间的单词。
到目前为止我尝试过的是:
while IFS='' read -r line || [[ -n "$line" ]];
do
echo $line | awk -F"[" '{print$2}' | awk -F"]" '{print$1}'
done < /home/fedora/file.txt
我可以打印“[”和“]”之间的单词。
然后我想将回显的单词放入变量中,但我不知道该怎么做。
任何帮助我都会感激。
最佳答案
试试这个:
variable="$(echo $line | awk -F"[" '{print$2}' | awk -F"]" '{print$1}')"
或
variable="$(awk -F'[\[\]]' '{print $2}' <<< "$line")"
或完整
while IFS='[]' read -r foo fruit rest; do echo $fruit; done < file
或者使用数组:
while IFS='[]' read -ra var; do echo "${var[1]}"; done < file
关于linux - 在bash中使用awk检索字符之间的字符串并分配给新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32731207/