【发布时间】:2018-07-09 22:27:47
【问题描述】:
我在一个变量中有这个字符串:
strVar="Hello World [randomSubstring].zip"
我想提取[randomSubstring],括号内的子字符串可以是任何东西。
预期的结果必须是这样的:
echo "$strVar"
Hello World .zip
我尝试了几种 grep 和 awk 的组合,但没有成功,我使用的是 CentOS 7。
echo "Hello World [RNVE5Z].zip" | grep -oP '(?<=[).*(?=])'
echo "Hello World [RNVE5Z].zip" | awk -F"["" '{print $1}' | awk -F"]" '{print $2}'
【问题讨论】:
-
请显示您的代码。 StackOverflow 旨在帮助人们修复现有的编程代码。请阅读stackoverflow.com/help/on-topic、stackoverflow.com/help/how-to-ask、stackoverflow.com/help/dont-ask、stackoverflow.com/help/mcve 并在此处发布更多问题之前使用tour。祝你好运。
-
好的,所以 [randomSubstring] 可以是任何东西。如果剩下的总是
Hello World .zip,你已经知道答案了。 -
我添加了一些代码,但不知道如何让它工作
-
我只想删除括号内的所有内容,包括它们
-
尝试将值通过管道传递给
sed -e 's/\[.*\]//'
标签: bash shell awk sed centos7