![如何使用 awk 获取大括号之间的字符串以及不带大括号的字符串](https://linux22.com/image/38762/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20awk%20%E8%8E%B7%E5%8F%96%E5%A4%A7%E6%8B%AC%E5%8F%B7%E4%B9%8B%E9%97%B4%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%BB%A5%E5%8F%8A%E4%B8%8D%E5%B8%A6%E5%A4%A7%E6%8B%AC%E5%8F%B7%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我的输入是:
ABC_DFG_FRE
s(DFR_GHY_JUY)
BGR_KIU_PLO
s(VFR_KJU_MKJ)
输出应该是:
ABC_DFG_FRE
DFR_GHY_JUY
BGR_KIU_PLO
VFR_KJU_MKJ
答案1
尝试这个:
$ awk -F'[()]' 'NF>2{print $2;next}1' file
ABC_DFG_FRE
DFR_GHY_JUY
BGR_KIU_PLO
VFR_KJU_MKJ
答案2
或者使用 sed:
sed 's/.*(//; s/).*//' file
或者更严格:
sed 's/.*(\(.*\)).*/\1/' file