ksh
シェルスクリプトでファイル名文字列とファイルマスクを比較したいです。文法を修正できますか?
if [ "NPER20200422TEST.PTN" = "NPER*.PTN" ]
then
echo "File matched"
else
echo "File not matched"
fi
私のファイル文字列を与えられたファイルマスクと一致させたいです。
答え1
答え2
Bourneに似たシェルであるincludeでは、ksh
この設定は次の目的case
に使用されます。
case NPER20200422TEST.PTN in
(NPER*.PTN) echo "File matched";;
(*) echo "File not matched";;
esac
Bourneシェル(多くの人が混乱し続けているが今日は廃止されている歴史的なシェル)では、sをsh
省略する必要があります。(
の標準(POSIX)実装では、orの使用が許可されます(*)
。*)
sh
答え3
anを使用して明細書を印刷し、echo
次にパイプすることができますgrep
。
if echo NPER20200422TEST.PTN | grep -q "NPER.*PTN"
then
echo "File matched"
else
echo "File not matched"
fi
grep -q
出力を生成しません