Bash以外のシェルには、解析したい次の文字列があります。
stringhere/morestring!99
99
解析後に文字列の末尾を保持し、残りの文字列を削除したいと思います。
保持する必要がある部分文字列の長さは常に2文字ではありません。!
文字列の終わりから1つ以上の数字または,
。
入力/出力の例:
In: stringhere/morestring!99
Out: 99
In: string/more!99,string/more!98,string/more!97
Out: 99
cut
!
文字列の中間を除いて、何かが明らかなように聞こえます。
見つけることができるショートカットがありますか?もっと良くなるかawk
?
ベストアンサー1
文字列がFILEにあり、常に最初の!
数字の後ろと前の最初の数字だけが必要な,
場合は、その数字がある場合は機能します。
awk -F'[!,]' '{print$2}' FILE
!
または、区切り文字として使用し、間の最初の数字または直後の,
2番目のフィールドを表示します。!
,
!
,
行の中や前に何もない場合。
,
上記の最初の!
awkの例が以前にあった場合は適用されません。
あるコマンドを別のコマンドにパイプすることもできますcut
。最初にそれを!
区切り文字として指定し、最初のコマンドの後にコンテンツをインポートし、次の!
コマンドでそれを区切り文字として指定し、,
最初のコマンドの前にコンテンツを取得します(,
存在する場合)。
cut -d'!' -f2 FILE | cut -d',' -f1