선택하다:

선택하다:

/proc/some_proc_id/cmdline내 우분투 컴퓨터에서 이 줄을 복사했습니다.

java^@-jar^@/usr/lib/selenium/selenium-server-standalone.jar^@-port^@4444^@-trustAllSSLCertificates^@

^@어쨌든 공백 문자는 vi에서 로 표시됩니다. 다음 명령을 사용하여 공백 문자로 바꾸려고했습니다.

:%s#^@# #g

그러나 그것은 말한다 pattern not found ^@.

특수 문자, 특히 캐럿 기호로 시작하는 특수 문자를 바꾸는 방법은 무엇입니까?

답변1

^@어쨌든 공백 문자는 vi에서 로 표시됩니다.

vi그 일을 한 사람 이 아닙니다 . 쉘에 명령줄을 입력할 때 인수 사이에 공백이 있지만 실제로 명령줄은 공백으로 구분된 하나의 긴 문자열이 아니라 개별 문자열의 내부 시퀀스입니다. 쉘은 명령이 실행되기 전에 명령줄을 별도의 인수 문자열로 분리합니다.

C에서는 문자열이 NUL 문자로 끝나며 ^@.

특수 문자, 특히 캐럿 기호로 시작하는 특수 문자를 바꾸는 방법은 무엇입니까?

이러한 문자를 입력하려면 다음 문자를 나타내기 위해 문자 앞에 Control-를 붙여야 합니다.v

예를 들어 이 경우에는 Control- v다음에 Control- 가 옵니다 @.

텍스트의 다음 문자를 소개하는 특수 문자는 일반적으로 Control- v이지만 실제로는 구성 가능합니다. stty -a설정에 대해 알아보려면 입력하세요 . lnext출력에서 찾으십시오.

답변2

저것상징NULL 문자를 나타내며 ASCII 값은 000입니다.

당신은 시도 할 수 있습니다:

:%s/\%x00/ /g

선택하다:

2@ 기호가 키 상단 에 있는 키보드에서는 (Celada에게 감사드립니다) 다음을 수행할 수 있습니다.

  • %s/<CTRL-2>/ /g(컴퓨터에서)

  • %s/<CTRL-SHIFT-2>/ /g(맥에서)

이는 <CTRL-2>먼저 CTRLPC를 누르고 계속 누르고 를 클릭한 2후 놓는 것을 의미합니다 CTRL.

<CTRL-SHIFT-2>Mac에서는 먼저 누르고 control, 계속 누르고, shiftMac에서는 누르고, 누르고 있다가, 클릭하고 2, 놓는 것을 control의미 합니다 shift.

마지막으로 두 명령 모두 %s/^@/ /g화면에 결과를 표시해야 합니다. ^@단일 문자를 나타내며 ^뒤에 가 없으므로 @위 명령에서는 및 를 연속해서 입력할 수 없습니다 ^.@

이 명령은 ^@모든 문자를 공백으로 바꿉니다.

(원천)

답변3

좋아, 당신이 컴퓨터 전문가가 아니라고 가정하고 간단한 설명은 다음과 같습니다! vi 편집기(개인적으로는 사용하지 않지만 아마도 vim에서)에서 Esc를 눌러 삽입 모드를 종료한 다음 /%x00을 사용하여 ^@ 문자를 검색한 다음 삭제할 수 있습니다(x 키 사용). 다음 항목으로 이동하려면 n(다음 항목)을 사용하고 그 항목 x를 사용하세요. 삭제할 항목이 몇 개만 있는 경우 이 방법이 유용합니다. 첫 번째 검색(/%x00) 후에 모두 삭제될 때까지 nxnxnx...를 수행할 수 있기 때문입니다! 물론, 삭제하려는 파일 수가 많은 대용량 파일이 있는 경우 검색 및 바꾸기 작업을 수행해야 합니다. Esc를 누른 다음(여러 번 눌러도 손상되지 않음) Shift 키를 눌러 삽입 모드가 아닌지 확인하고 화면 왼쪽 하단에 : 프롬프트를 표시합니다. (즉, Shift 키를 누른 채 ; 키를 누릅니다.) 1,$s/%x00//g를 입력합니다(: 뒤에 나타납니다). 그런 다음 Enter를 누릅니다. ^@ 문자가 모두 사라집니다! 방금 수행한 작업은 다음과 같습니다. 이 파일(1,$ 비트)의 모든 줄에 대해 ^@(%x00 비트)가 표시될 때마다 (s 비트)를 아무것도 없는(// 비트로 바꾸세요. 사이에 아무 것도 없다는 것을 알 수 있습니다. 두 개의 슬래시) 각 줄에서 필요한 만큼 여러 번 이 작업을 수행합니다(g 비트, 여기서 g는 전역을 나타냅니다.) 문자를 제거하지 않고 각 문자를 바꾸려는 경우 이는 동일한 명령이지만 // 사이에 대체될 문자입니다. \n은 유닉스 등에서 개행 문자이므로 이를 사용해야 할 수도 있다는 점을 잊지 마십시오. 아니면 물론 원하는 문자열도 가능합니다. 도움이 되었기를 바랍니다!

관련 정보