#
# Script Name : extract_filename.ksh
#
#!/bin/ksh
FILE_TO_SPLIT="CR_WKLY_Sales_SC_ON.TXT"
FILE_TO_SPLIT_NEW=$(awk FILE_TO_SPLIT_AWK="$FILE_TO_SPLIT" -F'[_.]' '{print $1"_"$3"_"$4"_"$5}')
echo "$FILE_TO_SPLIT_NEW"
次のコマンドはUnixコマンドプロンプトで正しく実行され、目的の出力を取得します。
echo "CR_WKLY_Sales_SC_NC.txt" | awk -F'[_.]' '{print $1"_"$3"_"$4"_"$5}'
抽出しようとしています。CR_Sales_SC_ON.TXT上記のスクリプトからファイル名から「WKLY」を削除すると、私が間違っているのでしょうか?
抑制する他の良い方法がありますか?キングケリー文字列CR_WKLY_Sales_SC_ON.TXTシェルスクリプトの文字列..?
WKLY
私の例を示すために何でもすることができます。私たちの要件は、最初の " _
"(アンダースコア)と2番目の " _
"(アンダースコア)の間に抑制された文字列を抽出することです。
例えば。
CR_MNTHLY_In2_SC_NC.txt
CR_WKLY_Sales_ST_NC.txt
CR_YRLY_In2_ST_NC.txt
CR_DLY_ITr_SC_NC.txt
必要な出力は次のようになります。
CR_In2_SC_NC.txt
CR_Sales_ST_NC.txt
CR_In2_ST_NC.txt
CR_ITr_SC_NC.txt
ベストアンサー1
下線のいずれかを削除したいとします。以下を使用するソリューションは次のとおりですsed
。
$ echo CR_WKLY_Sales_SC_ON.TXT | sed 's/WKLY_//'
CR_Sales_SC_ON.TXT