我想使用tac
逐个字符地反转文本文件。在 coreutils 的信息页面上,我发现了一个示例:#Reverse a file character by charactertac -r -s 'x\|[^x]'
但是运行tac -r -s
似乎打开标准输入而不是打印文件。是什么'x\|[^x]'
意思,我应该怎么做?
我还注意到 和 的输出tac [file]
是tac -r [file]
相同的,它们与cat [file]
. 仍然无法通过字符反转找出字符。
我想使用tac
逐个字符地反转文本文件。在 coreutils 的信息页面上,我发现了一个示例:#Reverse a file character by charactertac -r -s 'x\|[^x]'
但是运行tac -r -s
似乎打开标准输入而不是打印文件。是什么'x\|[^x]'
意思,我应该怎么做?
我还注意到 和 的输出tac [file]
是tac -r [file]
相同的,它们与cat [file]
. 仍然无法通过字符反转找出字符。
要使用 逐字符反转文件
tac
,请使用:这记录在
info tac
:-r
导致分隔符被视为正则表达式。-s SEP
用作SEP
分隔符。x\|[^x]
是一个匹配每个字符的正则表达式(那些是x
,那些不是x
)。tac file
与cat file
除非file
只有一行不同。tac -r file
相同,tac file
因为默认分隔符是\n
,当被视为正则表达式时与非正则表达式相同。如果您不关心LF 字符(请参阅 mosvy 的评论),那么使用
rev
它比使用tac -r -s 'x\|[^x]'
管道更有效,tac
如果需要的话。这种解决方案比
tac -r -s 'x\|[^x]'
因为正则表达式往往会大大减慢速度而便宜得多。