根据https://www.geeksforgeeks.org/rev-command-in-linux-with-examples/
Linux 中的 rev 命令用于按字符反转行。
例如
wolf@linux:~$ rev
Hello World!
!dlroW olleH
rev
现实生活中应用的例子是什么?
为什么我们需要反转字符串?
答案1
非标准rev
实用程序在更容易从字符串的一个方向表达或执行操作的情况下很有用,但它与您所拥有的相反。
例如,要获得最后的使用文本行中的制表符分隔字段cut
(假设文本到达标准输入):
rev | cut -f 1 | rev
由于无法将“最后一个字段”表达为cut
,因此更容易反转线条并获取第一个字段。显然,人们可能会认为使用awk -F '\t' '{ print $NF }'
将是更好的解决方案,但我们并不总是首先考虑最好的解决方案。
(当前)接受的答案如何从从末尾开始计数的文本行中剪切(选择)字段?使用这种方法与rev
,而亚军答案显示了替代方法。
另一个例子是在大整数中插入逗号,这样就12345678
变成了12,345,678
(原始数字以三为一组,从右边开始):
echo '12345678' | rev | sed -e 's/.../&,/g' -e 's/,$//' | rev
也可以看看你用字符串反转来做什么?请访问 SoftwareEngineering SE 网站了解更多示例。
答案2
举一个具体的例子,rev
它是一个有用的工具,可以帮助反向互补 DNA 序列,这在生物信息学中经常使用。
请记住脱氧核糖核酸是由核苷酸组成的双链聚合物。一般来说,DNA 简单地由其核苷酸的第一个字母(A、C、G、T)建模。如果一条链的“序列”已知,则另一条链也已知,因为 A 总是与 T 配对,而 C 总是与 G 配对。因此,双链 DNA 序列可能是这样的:
ACGTGTCAT
TGCACAGTA
关于 DNA 和两条链的另一件事 - 它们具有方向性,并且通常从 5' 端“读取”到 3' 端。这些股线具有反平行方向性,因此可以沿相反方向读取 - 请参见下图。
5' ACGTGTCAT 3'
3' TGCACAGTA 5'
现在 - 确定一条链通常很有用,因为序列可能很长(数千或数百万个核苷酸长度),所以这是通过编程完成的。一种方便的方法是使用rev
(和tr
):
echo ACGTGTCAT | tr ACGT TGCA | rev
ATGACACGT
答案3
在双向感知终端之前(甚至在 UTF-8 之前),它可以用于以希伯来语显示文本文件(阿拉伯语更复杂,因为您需要将字符转换为其表示形式),将它们从逻辑物理方向的方向性。
答案4
如果您有一个文本文件形式的条板布局(ASCII 艺术),则 rev 将其翻转以制作焊接面的图片以指导组装。