tac를 사용하여 파일 문자를 문자 단위로 역방향

tac를 사용하여 파일 문자를 문자 단위로 역방향

. tac​coreutils의 정보 페이지에서 다음 예를 찾았습니다. #Reverse a file Character by Charactertac -r -s 'x\|[^x]'

그러나 실행하면 tac -r -s파일을 인쇄하는 대신 표준 입력이 열리는 것 같습니다. 그것은 무엇을 'x\|[^x]'의미하며 어떻게 해야 합니까?

tac [file]또한 과 의 출력이 tac -r [file]동일하며 cat [file]. 여전히 문자별 반전을 파악할 수 없습니다.

답변1

파일을 하나씩 되돌리려면 tac다음을 사용하십시오.

tac -r -s 'x\|[^x]'

이 내용은 다음과 같이 기록됩니다.info tac:

# Reverse a file character by character.
tac -r -s 'x\|[^x]'

-r구분 기호가 정규 표현식으로 처리됩니다..-s SEPSEP구분자 로 사용. 모든 문자(인 문자, 아닌 문자 ) x\|[^x]와 일치하는 정규식입니다 .xx

$ cat testfile
abc
def
ghi
$ tac -r -s 'x\|[^x]' testfile

ihg
fed
cba%
$

tac fileExcept와 달리, 한 줄만 있는 cat file않는 한 . 정규식으로 처리되지만 동일하게 처리되지 않는 경우 기본 구분 기호 는 와 동일 합니다.filetac -r filetac file\n

답변2

당신이 상관하지 않는다면저주파 문자rev(mosvy의 의견 참조) 필요할 때 tac -r -s 'x\|[^x]'파이핑하는 것보다 사용하는 것이 훨씬 더 효율적입니다 .tac

$ cat testfile
abc
def
ghi
$ rev testfile
cba
fed
ihg
$ rev testfile|tac
ihg
fed
cba

tac -r -s 'x\|[^x]'이 솔루션은 속도가 상당히 느려지는 경향이 있는 정규식보다 훨씬 저렴합니다 .

관련 정보