1

次のテキストがあるとします。

GINC/weary/crazy/RMSD=2316

2番目のスラッシュ/との間にあるものを抽出する方法があることを望んでいました/RMSD=2316. つまり、文字列を探して、その文字列/RMSD=2316とその前にあるスラッシュの間にあるものをすべて抽出します。

4

6 に答える 6

2

位置の仮定なしで sed を使用:

echo 'GINC/weary/crazy/RMSD=2316' | \
      sed -n 's!.*/\([^/]*\)/RMSD=2316.*!\1!p'
于 2013-06-27T21:11:39.133 に答える
2

awk:

awk -F/ '{for(i=1;i<=NF;i++) if($i=="RMSD=2316") print $(i-1)}' t
于 2013-06-27T21:13:39.793 に答える
1

どうですか

cut -d/ -f3

-d/スラッシュ区切り文字です

-f33 番目の列を意味します

于 2013-06-27T21:09:14.450 に答える
1

これをマークしたのでbash

var='GINC/weary/crazy/RMSD=2316'
var1=${var%/RMSD=2316}
echo $var1
echo ${var1##*/}
于 2013-06-27T21:13:59.713 に答える
1

Perl ソリューション:

str=GINC/weary/crazy/RMSD=2316
echo "$str" | perl -ne 'print "$1\n" if m|.*?/.*?/(.*)/RMSD=2316|'
于 2013-06-27T21:20:41.697 に答える