提取字符串的子串

提取字符串的子串

如何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}'

明确您想在问题中使用哪种方法非常重要。

相关内容