質問
私のスクリプトは、(#は数字で、TYPEは、2つまたは3つの文字である)フォームのR番号のTYPE.TXTにファイル名を取ります。 私は私のスクリプトは私にTYPEを与えたいです。私はそれを得るために何をすべき?私がAWKを使用してsedをする必要があります推測します。
私は、/ bin / shを使っています(要件である)
解決
あなたはawkの
を使用することができます$ echo R1CcC.TXT | awk '{sub(/.*[0-9]/,"");sub(".TXT","")}{print}'
CcC
または
$ echo R1CcC.TXT | awk '{gsub(/.*[0-9]|\.TXT$/,"");print}'
CcC
とsedの場合は本当に何をしたい。
$ echo R9XXX.TXT | sed 's/R[0-9]\(.*\)\.TXT/\1/'
XXX
他のヒント
私は、これはあなたが探しているものだと思います。
$ echo R3cf.txt | sed "s/.[0-9]\(.*\)\..*/\1/"
cf
TXTが常にある場合は、アッパーケースとファイル名は、常にあなたのような何かができるRで始まります。
$ echo R3cf.txt | sed "s/R[0-9]\(.*\)\.TXT/\1/"
あなたのbin/sh
が何であるかシェルによっては、単にシェルを(使用することができます:
f=R9ABC.TXT
f="${f%.TXT}" # remove the extension
type="${f#R[0-9]}" # remove the first bit
echo "$type" # ==> ABC
所属していません StackOverflow