홈페이지에 공유된 코드를 모두 시도해 보았는데 성공하지 못해서 이런 질문을 드립니다.
매우 긴 텍스트가 포함된 파일이 있습니다. 모든 텍스트는 첫 번째 줄에만 있습니다.
이 파일 끝에 기호가 포함된 긴 줄을 추가하고 싶습니다. 내 줄은 다음과 같습니다.
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
\n
및 등의 기호가 포함된 줄을 추가하고 싶습니다 [{]"...
. 기존 파일의 첫 번째 줄 끝까지.
답변1
행이 매우 복잡하고 이스케이프 문자가 많이 포함되어 있으므로 Bash와 같은 일부 쉘에서 지원되는 printf "%q"를 사용하는 것이 좋습니다. 다음과 같은 짧은 스크립트를 사용할 수 있습니다.
#!/usr/bin/env bash
read -r
printf "%q\n" "$REPLY"
그것을 실행하고 다음 줄을 붙여넣으세요.
$ ./printf-q.sh
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
\[\{\\n\"code\":\"final\ .net.wifi.WifiManager\ wifi\ \\u003d\\n\ \"typeName\":\"\"\,\"palette\":\"9\"\,\"type\":\"\ \"\,\"spec\":\"Enable\ WiFi\"\}\]\'
마지막 줄은 다음과 같이 추가 이스케이프 문자를 추가하지 않고 셸에서 사용할 수 있는 형식으로 표시됩니다.
$ echo \[\{\\n\"code\":\"final\ .net.wifi.WifiManager\ wifi\ \\u003d\\n\ \"typeName\":\"\"\,\"palette\":\"9\"\,\"type\":\"\ \"\,\"spec\":\"Enable\ WiFi\"\}\]\' >> FILE
$ cat FILE
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
답변2
여기에 참조된 문서 사용:
cat >>file <<'END'
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
END
그러면 여기에 있는 문서의 내용이 이름이 지정된 파일 끝에 추가됩니다 file
. 문서가 여기에 인용되었으므로 첫 글자 주위의 작은따옴표를 END
보면 쉘이 확장이나 파일 이름 글로빙 또는 기타 데이터 해석을 수행하지 않는다는 것이 분명합니다 .