シェルスクリプトのawk

シェルスクリプトのawk
#
# 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

おすすめ記事