sed에 $1을 어떻게 전달하나요? [폐쇄]

sed에 $1을 어떻게 전달하나요? [폐쇄]

일부 HTML 파일을 시도하고 정리하려면 다음 코드를 사용하고 있습니다. $1디렉터리 이름이어야 합니다. 이는 명령줄에서 제대로 작동하며 요청한 대로 디렉터리의 파일을 변경합니다. 두 경우 모두 echo표시되지만 $directorybash 스크립트에서 사용하면 지정된 디렉토리에서 변경 사항이 발생하지 않습니다. 왜? 어떻게 해결할 수 있나요?

#!/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

관련 정보