我尝试使用sed
使用以下脚本捕获字符串中的数字:
echo '["770001,德邦优化混合","750005,安信平稳增长混合发起A"]' | sed -n 's/.*"\(\d{6}\),/\1/p'
我的期望是回声
770001
750005
虽然没有输出。为什么呢?
答案 0 :(得分:1)
如果您对awk
感到满意,那么关注awk
可能对您有所帮助。由于我的版本为awk
,因此我使用--re-interval
如果你有更新版本的awk
,那么你可能不需要它。
echo '["770001,德邦优化混合","750005,安信平稳增长混合发起A"]' |
awk --re-interval '{while(match($0,/[0-9]{6}/)){print substr($0,RSTART,RLENGTH);$0=substr($0,RSTART+RLENGTH+1)}}'
输出如下。
770001
750005