. 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]'
# Reverse a file character by character. tac -r -s 'x\|[^x]'
-r
구분 기호가 정규 표현식으로 처리됩니다..-s SEP
SEP
구분자 로 사용. 모든 문자(인 문자, 아닌 문자 ) x\|[^x]
와 일치하는 정규식입니다 .x
x
$ cat testfile
abc
def
ghi
$ tac -r -s 'x\|[^x]' testfile
ihg
fed
cba%
$
tac file
Except와 달리, 한 줄만 있는 cat file
않는 한 . 정규식으로 처리되지만 동일하게 처리되지 않는 경우 기본 구분 기호 는 와 동일 합니다.file
tac -r file
tac 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]'
이 솔루션은 속도가 상당히 느려지는 경향이 있는 정규식보다 훨씬 저렴합니다 .