我需要通过shell脚本删除一部分字符串。
例如:我有这个:VERBOSE [61622] [C-0000051f]我想要这个: C-0000051f
最后一部分没有括号 我该怎么办?
谢谢!
答案 0 :(得分:0)
检查awk解决方案
> data="VERBOSE [61622] [C-0000051f] "
> awk -F"[" ' { print $NF } ' <<< $data | awk -F"]" ' { print $1 } '
C-0000051f
>
EDIT1:
更紧凑的版本
> data="VERBOSE [61622] [C-0000051f] "
> awk -F"[[]|]" ' { print $4 } ' <<< $data
C-0000051f
>
答案 1 :(得分:0)
我从您的回答here中注意到,您想从文件中提取一些信息,然后在该提取的行上执行一组操作。您在此处提供的整个行可以简化为以下内容:
NUMTEL="$1"
IDCALL=$(awk -F "[][]" -v string="$NUMTEL" '/VERBOSE/ && ($0 ~ string){print $(NF-1);exit}' /var/log/asterisk/full)
答案 2 :(得分:-1)
我可以使用以下脚本来完成所需的工作。
NUMTEL = $ 1
IDCALL = /usr/bin/grep "VERBOSE" /var/log/asterisk/full | /usr/bin/grep "$NUMTEL" | /usr/bin/head -n1 | /usr/bin/awk '{print $4}' | /usr/bin/cut -d] -f2 | /usr/bin/sed -e 's/\[//g'
回显$ IDCALL
谢谢