따옴표를 사용하지 않고 특수 문자가 포함된 파일을 만드는 방법

따옴표를 사용하지 않고 특수 문자가 포함된 파일을 만드는 방법

특수문자가 포함된 파일을 만들려고 합니다. 하지만 큰 따옴표나 작은 따옴표를 사용하고 싶지 않습니다.

이 파일을 어떻게 만들 수 있나요?

답변1

백슬래시는 Bourne과 같은 셸에서 인용의 대체 형식을 제공하므로 다음을 수행할 수 있습니다.

printf %s \$\ \; > file

예를 들어 파일에 특수 문자 3개( $, 공백 및 ;)가 포함되어 있다고 가정합니다. 8진수 시퀀스를 사용하여 printf정확한 바이트 값을 지정할 수도 있습니다 .

printf \\1\\2 > file

바이트 1과 2를 포함하는 파일을 만듭니다. 일부 printf구현에서는 16진수 시퀀스도 지원합니다.

printf \\xff\\x80 > file

또는 유니코드 코드 포인트를 사용하여 문자를 지정합니다.

printf \\u20ac > file

유로 기호를 예로 들어 보겠습니다. 대부분의 구현에서 문자는 로캘의 문자 집합으로 출력됩니다. 한 가지 예외는 내장 함수가 로케일의 문자 집합에 관계없이 printfUTF-8로 출력된다는 것입니다.ksh93

텍스트를 입력하는 다른 방법은 여기 문서를 참조하세요. 이는 여러 줄의 텍스트에 편리합니다.

cat << \EOF > file
some text with $ \ | # *
and anything you want
EOF

파일 만들기이름이러한 문자의 경우 다음을 사용하십시오.

echo text > \$\ \;

또는:

echo text > $(printf \\1\\2)

등. 분할+글로브의 효과 로 인해 $(...)다음을 통해 비활성화해야 합니다.

IFS=; set -o noglob

$IFS또는 와일드카드 연산자( *, ?, ) 에 있는 [...]문자 의 경우.

관련 정보