확장 명령을 사용하여 모든 탭 문자를 공백으로 변환하려고 합니다.
주문하다: cat department.txt
산출:
1 QA
2 DEV
3 OPS
확장된 Department.txt를 실행할 때 출력은 동일하게 유지됩니다.
내 파일에 탭 문자가 포함되어 있는지 확인하기 위해 od -c를 사용했습니다. 확장 프로그램이 작동하지 않는 이유를 설명할 수 있는 사람이 있나요?
업데이트: 아래 설명에서 Mulu가 지적했듯이 확장 명령에 대해 잘못된 예상이 있었기 때문에 탭 문자가 단일 공백으로 변환될 것으로 예상했습니다. Expand 명령은 탭 문자를 해당 공백으로 변환합니다.
답변1
탭을 단일 공백으로 변환하려면 여전히 를 사용하고 expand
탭 정지를 기본값 8 대신 1로 설정할 수 있습니다.
$ expand foo
1 QA
2 DEV
3 OPS
$ expand -t1 foo
1 QA
2 DEV
3 OPS
그러나 이렇게 하면 연속된 탭이 별도의 공간으로 계속 확장됩니다.
$ vim foo
$ expand foo
1 QA
2 DEV
3 OPS
$ expand -t1 foo
1 QA
2 DEV
3 OPS
원하는 동작에 따라 다음을 사용할 수 있습니다 tr
.
$ tr -s '\t' ' ' < foo
1 QA
2 DEV
3 OPS