기존 파일에 [)"$&...ect 기호가 포함된 긴 줄(예: 코드)을 추가하는 방법은 무엇입니까?

기존 파일에 [)"$&...ect 기호가 포함된 긴 줄(예: 코드)을 추가하는 방법은 무엇입니까?

홈페이지에 공유된 코드를 모두 시도해 보았는데 성공하지 못해서 이런 질문을 드립니다.

  1. 매우 긴 텍스트가 포함된 파일이 있습니다. 모든 텍스트는 첫 번째 줄에만 있습니다.

  2. 이 파일 끝에 기호가 포함된 긴 줄을 추가하고 싶습니다. 내 줄은 다음과 같습니다.

    [{\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보면 쉘이 확장이나 파일 이름 글로빙 또는 기타 데이터 해석을 수행하지 않는다는 것이 분명합니다 .

관련 정보