カット/感嘆符を区切り記号として使用

カット/感嘆符を区切り記号として使用

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

おすすめ記事