次の文字列の最後の部分から2番目のフィールドを抽出したいと思います。
foo_1.103.debug_xx.ver21-inc-1 --> string extracted "debug_xx"
foo_1.103.1.0.release_32_xx.ver21-inc-1 --> string extracted "release_32_xx"
foo_1.103.1.0.release_xx.ver21-inc-1 --> string extracted "release_xx"
どんな助けでも大変感謝します。
ベストアンサー1
純粋さbash
:
IFS='.' read -a p <<< 'foo_1.103.1.0.release_32_xx.ver21-inc-1'
echo "${p[${#p[@]}-2]}"
以下を使用すると、これを簡単に実行できますawk
。
awk -F. '{print$(NF-1)}' <<< 'foo_1.103.1.0.release_32_xx.ver21-inc-1'
解析したい文字列がファイル名の場合でも、次のものを使用できますawk
。
awk -F. 'BEGIN{for(i=1;i<ARGC;i++){$0=ARGV[i];print$(NF-1)}}' foo*