Bash
逐行和逐字元反轉文件
輸入:
hello enrico
輸出:
ocirne olleh
為此,我可以簡單地
tac
創建一個文件並將輸出通過管道傳輸到rev
(或相反),因此完成這項工作的一個函式就是:revtac() { tac "$@" | rev; }
這項工作是否有內置功能?
我懷疑這可能會破壞某些東西,因為它會反轉
<CR>
並<LF>
在 Windows 生成的文件上,但我仍然感興趣。
不,這項工作沒有內置功能。
順便說一句,內置外掛
tac
也不rev
是。它們是外部二進製程序,一些 *nix 系統甚至沒有它們。您還可以使用 Perl 來模擬組合:
perl -lne 'push @lines, scalar reverse; END { print for reverse @lines }' -- file
您可以根據實際需要使用 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 $