いくつかのHTMLファイルを試してクリーンアップするには、次のコードを使用しています。$1
ディレクトリ名でなければなりません。これはコマンドラインでうまく機能し、要求どおりにディレクトリ内のファイルを変更します。どちらの場合もecho
表示されますが、$directory
bashスクリプトで使用すると、指定されたディレクトリに変更は発生しません。なぜ?どうすれば解決できますか?
#!/bin/bash
directory=$1
echo $directory
LC_CTYPE=C
sed -i.clean -f uncap-html.sed $directory/*.html
echo DONE
ベストアンサー1
同じスクリプトを使用したときになぜ失敗したのかわかりません。期待どおりに動作します。
sed.sh
1 #!/bin/bash
2 directory=$1
3 echo $directory
4 LC_CTYPE=C
5 sed -i.clean -f uncap-html.sed $directory/*.html
6 echo DONE
uncap-html.sed
[gc13@oc1245342277 sh]$ cat uncap-html.sed
s/z/o/g
[gc13@oc1245342277 sh]$
1.html
Hello
2.html
World
実装する
[gc13@oc1245342277 sh]$ cat *.html
Hellz
Wzrld
[gc13@oc1245342277 sh]$
他のアプローチを試してみることもできます。
#!/bin/bash
FILES="$1/*.html"
echo $FILES
LC_CTYPE=C
sed -i.clean -f uncap-html.sed $FILES
echo DONE