입력하다:
hello
enrico
산출:
ocirne
olleh
이를 위해 간단히 tac
파일을 생성하고 출력을 파이프로 rev
(또는 그 반대로) 연결할 수 있으므로 해당 작업을 수행하는 함수는 다음과 같습니다.
revtac() { tac "$@" | rev; }
작업에 내장된 기능이 있나요?
<CR>
Windows <LF>
에서 생성된 파일을 되돌리기 때문에 이것이 문제가 될 수 있다고 생각 하지만 여전히 관심이 있습니다.
답변1
아니요, 이 작업에 적합한 내장 기능이 없습니다.
그건 그렇고, 내장 함수 tac
도 rev
내장 함수도 아닙니다. 이는 외부 바이너리이며 일부 *nix 시스템에는 이러한 바이너리가 없습니다.
Perl을 사용하여 구성을 시뮬레이션할 수도 있습니다.
perl -lne 'push @lines, scalar reverse; END { print for reverse @lines }' -- file
답변2
실제 필요에 따라 awk 또는 sed 스크립트를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' /path/YOURFILE | sed '1!G;h;$!d'
이것이 제가 테스트한 방법입니다:
$ cat /tmp/a
hello
enrico
$ sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' /tmp/a | sed '1!G;h;$!d'
ocirne
olleh
$
답변3
아니면 어이:
awk '
function rev(s, t,i) {
for (i = length(s); i > 0; i--)
t = t substr(s, i, 1)
return t
}
{ line[NR] = rev($0) }
END { for (i = NR; i > 0; i--) print line[i] }
' file