awk中的子串使用gsub正则表达式

时间:2014-12-05 12:34:59

标签: awk

我觉得要求非常简单。

输入字符串格式:

DTC_SubrProfile_20141205230707.unl

必需的输出格式:

SubrProfile

含义," DTC _" " _20141205230707.unl"应该从输入字符串中删除。

我们有可能使用awk gsub实现它吗?

2 个答案:

答案 0 :(得分:0)

通过sed,

$ echo 'DTC_SubrProfile_20141205230707.unl' | sed 's/^[^_]*_\|_.*//g'
SubrProfile

通过awk,

$ echo 'DTC_SubrProfile_20141205230707.unl' | awk '{gsub(/^[^_]*_|_.*/,"")}1'
SubrProfile

以上命令会删除从开头到第一个下划线的所有字符,然后从剩余字符串中的_一直到最后一个字符。

$ echo 'DTC_SubrProfile_20141205230707.unl' | awk -F'_' '{print $2}'
SubrProfile

上面的awk会根据输入字段分隔符_

打印第二列

答案 1 :(得分:0)

by cut

echo "DTC_SubrProfile_20141205230707.unl"|cut -d _ -f2