前提・実現したいこと
カレントディレクトリに対して、処理対象のファイルの存在確認をしたいです。
※処理対象はファイル名の先頭は必ずaaa_bbb_がついてます。
処理対象ファイルのファイル名のフォーマットはaaa_bbb_ccc.txtで、
aaa_bbb_までは固定長で、cccは変動します。(cccの箇所は文字数も3文字とは限らないです)
ファイルの存在確認について、固定長(aaa_bbb_)と正規表現を組み合わせて、
処理対処ファイルの存在確認をしたいです。
発生している問題・エラーメッセージ
下記のとおり、test.shを作成して実行したがファイルの存在確認ができておらず、
また二項演算子が予期されますが表示されてしまった。
user01@Libra:~/work$ ll 合計 0 drwxrwxrwx 1 user01 user01 4096 2月 25 23:12 ./ drwxr-xr-x 1 user01 user01 4096 2月 25 23:12 ../ -rw-rw-r-- 1 user01 user01 0 2月 25 22:06 aaa_bbb_ccc.txt -rw-rw-r-- 1 user01 user01 0 2月 25 22:06 aaa_bbb_dd.txt -rwxrwxrwx 1 user01 user01 182 2月 25 23:12 test.sh* user01@Libra:~/work$ cat test.sh #!/bin/bash if [ -f aaa_bbb_* ] ;then echo "file exists" else echo "file does not exist" fi user01@Libra:~/work$ user01@Libra:~/work$ ./test.sh ./test.sh: 8 行: [: aaa_bbb_ccc.txt: 二項演算子が予期されます file does not exist
試したこと
aaa_bbb_*をダブルクォートで囲む
user01@Libra:~/work$ ll 合計 0 drwxrwxrwx 1 user01 user01 4096 2月 25 23:12 ./ drwxr-xr-x 1 user01 user01 4096 2月 25 23:12 ../ -rw-rw-r-- 1 user01 user01 0 2月 25 22:06 aaa_bbb_ccc.txt -rw-rw-r-- 1 user01 user01 0 2月 25 22:06 aaa_bbb_dd.txt -rwxrwxrwx 1 user01 user01 182 2月 25 23:12 test.sh* user01@Libra:~/work$ user01@Libra:~/work$ cat test.sh #!/bin/bash if [ -f "aaa_bbb_*" ] ;then echo "file exists" else echo "file does not exist" fi user01@Libra:~/work$ user01@Libra:~/work$ ./test.sh file does not exist
⇒「二項演算子が予期されます」は解消されたがファイルの存在確認ができていない。
教えてほしいこと
1.二項演算子が予期されますというのはどういう意味なのでしょうか?
2.ダブルクォートで囲むと、なぜメッセージが出なくなるのでしょうか?
3.固定長(aaa_bbb_)と正規表現を組み合わせて、if [ -f ]の処理を正常に動くようにするにはどのようにすればいいのでしょうか?
以上となります。
不足情報・不明点がありましたらお手数ですがコメントをお願いいたします。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー