如何切割字母N的第一次出现

时间:2014-08-14 11:33:02

标签: bash

如何削减一切,N_NNN之前的内容:

SPA-8   N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2

在SPA-8和N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2之间有3个空格

作为输出我想得到:

N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2

4 个答案:

答案 0 :(得分:4)

试试这个sed one-liner

sed 's/[^N]*//'

答案 1 :(得分:2)

你可以做到

awk -F"N_NNN" '{print FS$2 }' 

给出了

awk -F"N_NNN" '{print FS$2 }' <<< "SPA-8   N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2"
# N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2

如果您可以拆分空白,则可以

awk -F"   " '{print $2 }'

答案 2 :(得分:1)

你可以这样做:

$ echo "SPA-8   N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2" | awk -F"N\_NNN" '{print "N\_NNN"$2}'
N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2

答案 3 :(得分:0)

这是实现此任务的纯粹BASH方式:

s='SPA-8   N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2'
[[ "$s" =~ (N_NNN.*$) ]] && echo "${BASH_REMATCH[1]}"
N_NNN4_1.2.3.4.zzzzzzz_bbb.nnn2