![提取字符串的子串](https://linux22.com/image/187816/%E6%8F%90%E5%8F%96%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%AD%90%E4%B8%B2.png)
如何3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477
从以下字符串中提取?
mysql-bin.000025 217141189 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
它是通过获取的line=$(head -n 1 ./xtrabackup_binlog_info)
答案1
像这样awk
:
$ line="$(head -n 1 ./xtrabackup_binlog_info)"
$ echo "$line" | awk -F'[[:blank:]]+|,' '{ print $3 }'
3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477
答案2
使用awk
:
awk 'BEGIN{ FS="[,[:blank:]]+"; }; { print $(NF-1); exit; }'
答案3
echo $line | awk -F '[ ,]' '{print $3}'
它用于echo
打印 的值$line
,然后用于awk
将分隔符设置为空格或 a,
并打印第三个字段。
输出:
3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477
如果您使用head
而不是这样做echo $line
,那么输出是通过以下方式实现的:
head -n 1 ./xtrabackup_binlog_info | awk -F '[ ,]' '{print $8}'
明确您想在问题中使用哪种方法非常重要。