如何削减一切,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
答案 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