. 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
ファイルを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とは異なり、1行しかない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]'
このソリューションは、速度が大幅に遅くなる傾向がある正規表現よりはるかに安価です。