다음과 같이 끝나는 텍스트 파일이 있습니다.
line1^I$^M$
line2^I$^M$
line3^I$^M$
sed
명령과 "dos2unix"를 사용하여 온라인에서 찾은 많은 옵션을 시도했지만 제거만 가능 ^M$
하고 삭제할 수는 없습니다 ^I
. 이제 내 파일은 다음과 같습니다.
line1^I$
line2^I$
line3^I$
온라인에서 찾아봤지만 관련 내용을 찾을 수 없었습니다 ^I
. 무슨 뜻이에요?
답변1
따라서 파일은 다음을 사용하여 다음과 같이 표시됩니다 od
.cat -A
$ od -c foo
0000000 l i n e 1 \t \n l i n e 2 \t \n l i
0000020 n e 3 \t \n
0000025
$ cat -A foo
line1^I$
line2^I$
line3^I$
$
조각모두 ^I
( ) 문자의 경우 .to를 Tab사용할 수 있습니다 .sed -i 's/\t//g' foo
오직줄 끝에서 탭을 제거하려면 다음을 사용하십시오.sed -i 's/\t$//' foo
$ sed -i 's/\t//g' foo
$ od -c foo
0000000 l i n e 1 \n l i n e 2 \n l i n e
0000020 3 \n
0000022
$ cat -A foo
line1$
line2$
line3$
$
답변2
^I
Ctrl캐럿 다음에 I가 오는 것이 아니라 +로 구성된 문자를 의미할 수도 있습니다 I. 실제로 이 문자에는 대부분의 키보드에 단축키(예: )가 있습니다 Tab. 파일을 보면 cat
다음과 같은 내용을 볼 수 있습니다.
line1 $
line2 $
line3 $
즉, 사용하는 표시 텍스트 ^I
가 눈에 보이는 줄 끝으로 표시되지 않는 한 $
.
tr
그러나 원하는 경우 다음 방법을 사용하여 제거할 수 있습니다.
$ cat file | tr -d '\t'
\t
이 경우 Useful 을 포함한 여러 일반적인 도구에서 탭 문자를 나타내는 간단한 방법인 매직 시퀀스입니다 tr
.
dos2unix
도구가 "번역"하는 데 사용되는 모든 플랫폼에서 동일하므로 탭에는 영향을 미치지 않습니다.