Wol*_*olf 15 command-line string
根据https://www.geeksforgeeks.org/rev-command-in-linux-with-examples/
Linux 中的 rev 命令用于按字符反转行。
例如
wolf@linux:~$ rev
Hello World!
!dlroW olleH
Run Code Online (Sandbox Code Playgroud)
rev
在现实生活中应用的例子是什么?
为什么我们需要反向字符串?
Kus*_*nda 49
rev
在从字符串的一个方向更容易表达或执行操作的情况下,非标准实用程序很有用,但它与您所拥有的相反。
例如,要使用(假设文本到达标准输入)从文本行中获取最后一个制表符分隔的字段cut
:
rev | cut -f 1 | rev
Run Code Online (Sandbox Code Playgroud)
由于无法将“最后一个字段”表达为cut
,因此更容易反转行并获取第一个字段。显然有人awk -F '\t' '{ print $NF }'
会争辩说使用会是更好的解决方案,但我们并不总是首先考虑最佳解决方案。
(当前)接受的如何从文本行从末尾开始剪切(选择)一个字段的答案?将这种方法与 一起使用rev
,而亚军的答案显示了替代方法。
另一个例子是将逗号插入到大整数中,这样12345678
就变成12,345,678
(三个一组的原始数字,从右边开始):
echo '12345678' | rev | sed -e 's/.../&,/g' -e 's/,$//' | rev
Run Code Online (Sandbox Code Playgroud)
另请参阅您将字符串反转用于什么?有关更多示例,请访问 SoftwareEngineering SE 站点。
作为一个具体的例子,它rev
是一个有用的工具,可以帮助反向补充 DNA 序列,这在生物信息学中经常使用。
请记住,DNA是由核苷酸组成的双链聚合物。通常,DNA 只是通过其核苷酸(A、C、G、T)的第一个字母来建模。如果一条链的“序列”是已知的,另一条链也是如此,因为 A 总是与 T 配对,而 C 总是与 G 配对。 因此,双链 DNA 序列可能是这样的:
ACGTGTCAT
TGCACAGTA
Run Code Online (Sandbox Code Playgroud)
关于 DNA 和两条链的另一件事 - 它们具有方向性,并且通常从 5' 端到 3' 端“读取”。股线具有反平行的方向性,因此以相反的方向读取 - 请参见下图。
5' ACGTGTCAT 3'
3' TGCACAGTA 5'
Run Code Online (Sandbox Code Playgroud)
现在 - 在给定另一条链的情况下确定一条链通常很有用,并且由于序列可能很长(长度为数千或数百万个核苷酸),这是以编程方式完成的。一种方便的方法是使用rev
(和tr
):
echo ACGTGTCAT | tr ACGT TGCA | rev
ATGACACGT
Run Code Online (Sandbox Code Playgroud)