如何在Linux上使用rev命令

Linux的rev命令反转文本字符串。该命令可以对提供的文本或文件进行操作,而且看起来非常简单。但与许多命令行实用程序一样,当您将其与其他命令结合使用时,它的真正功能就会显现出来。

rev命令是那些简单的Linux实用程序之一,乍一看似乎有些奇怪。它执行单一功能:颠倒字符串。除了能够打印快速帮助页(-h)并向您显示其版本号(-V)之外,它不接受任何命令行选项。

所以,雷夫颠倒了弦,就这样?没有变体或选项吗?是也不是。是的,它没有排列,但不,这还不是全部。本教程将向您展示如何将其组合以实现强大的操作。

当您在更复杂的命令序列中使用rev*作为构建块时,它真的开始显示出它的价值。rev是一组充当促进器的命令(如ttac和yes)中的一个。当您看到它们如何更有效地使用其他命令时,就更容易理解它们的用处。

使用rev命令

rev在不带其他参数的命令行上使用,它接受任何键入的输入,反转它,然后在终端窗口中打印它。它会一直这样做,直到您按下Ctrl+C退出。

rev

如果您键入一些文本并按Enter键,就会让rev反向打印字符串-当然,除非您为它提供了回文。

将文本传递到版本

您可以使用ECHO将文本通过管道传送到Rev.

echo one two three | rev

您还可以使用rev逐行反转整个文本文件的内容。在本例中,我们有一个包含文件名列表的文件。该文件名为“filelist.txt”。

rev filelist.txt

从文件中读取每一行,反转,然后打印到终端窗口。

将rev与其他命令组合使用

下面是一个使用管道输入的示例,该管道调用rev两次。

此命令将文本字符串中的最后一个字符去掉。这对于删除标点符号可能很有用。我们需要使用Cut命令来剥离角色。

echo 'Remove punctuation.' | rev | cut -c 2- | rev

我们来分析一下。

Echo将字符串发送到对Rev.。 REV将字符串反转,并通过管道将其插入CUT。 c(字符)选项告诉Cut返回字符串中的字符序列。 2-选项告诉Cut返回从字符2到行尾的字符范围。如果提供第二个数字,如2-5,则范围为2到5个字符。没有第二个数字表示“一直到字符串的末尾”。 反转的字符串-减去它的第一个字符-被传递给rev,后者反转字符串,因此它回到了原来的顺序。

因为我们去掉了反转字符串的第一个字符,所以我们去掉了原始字符串的最后一个字符。是的,您可以使用sed或awk来实现这一点,但这是一种更简单的语法。

分隔最后一个单词

我们可以使用类似的技巧来返回该行的最后一个单词。

该命令与最后一个命令类似:同样,它使用了两次rev。不同之处在于使用CUT命令选择文本部分的方式。

echo 'Separate the last word' | rev | cut -d' ' -f1 | rev

以下是命令明细:

Echo将字符串发送到对Rev.。 REV将字符串反转,并通过管道将其插入CUT。 -d‘’选项(分隔符)告诉Cut返回由空格分隔的字符序列。 f1选项告诉Cut返回不包含分隔符的字符串的第一部分。换句话说,句子的第一部分一直到第一个空格。 颠倒的第一个单词被传递给rev,rev颠倒字符串,因此它回到了原来的顺序。

因为我们提取了颠倒的字符串的第一个单词,所以我们去掉了原始字符串的最后一个单词。这句话的最后一个词是“word”,它是为我们打印出来的。

修剪文件中的内容

假设我们有一个包含文件名列表的文件,文件名用引号引起来。我们想把文件名中的引号去掉。

我们来看一下这个文件:

less filelist.txt

文件的内容以更少的篇幅显示给我们。

我们可以使用以下命令删除每行两端的标点符号。此命令使用两次版本号和版本号两次。

rev filelist.txt | cut -c 2- | rev | cut -c 2-

为我们列出的文件名不带引号。

该命令按如下方式分解:

Rev反转文件中的行,并将它们通过管道传输到CUT。 c(字符)选项告诉CUT从每行返回一个字符序列。 2-选项告诉Cut返回从字符2到每行末尾的字符范围。 反转的字符串减去它们的第一个字符,将传递给Rev.。 Rev颠倒了字符串,所以它们又回到了原来的顺序。他们被送到第二次切割。 c(字符)选项告诉CUT从每个字符串返回一个字符序列。 2-选项告诉Cut返回从字符2到每行末尾的字符范围。这“跳过”前导引号,即每行一个字符。

很多管道

下面的命令返回当前目录中每个文件扩展名的排序列表。它使用五个不同的Linux命令。

ls | rev | cut -d'.' -f1 | rev | sort | uniq

这个过程很简单:

ls-列出当前目录中的文件。这些被输送到Rev.。 REV反转文件名并将它们通过管道传输到CUT。 CUT返回每个文件名的第一部分,直到分隔符。-d‘.’告诉Cut使用句点“。作为分隔符。直到第一个句点的反转文件名部分是文件扩展名。这些被输送到Rev.。 REV将文件扩展名反转为其原始顺序。他们被用管子分门别类。 排序对文件扩展名进行排序,并将结果通过管道传输到uniq。 Uniq为每种类型的唯一文件扩展名返回单个列表。注意:如果没有文件扩展名(例如Makefile以及目录help和gc_help),则会列出整个文件名。

要对其进行最后的润色,请将-c(Count)命令行选项添加到uniq命令。

ls | rev | cut -d'.' -f1 | rev | sort | uniq -c

我们现在得到当前目录中不同文件类型的排序列表,每个类型的计数都是。

这是一句相当漂亮的俏皮话!

DrakcaB gnioG的DrawroF或DrakcaB gnioG

有时你必须后退才能前进。作为团队的一员,你通常前进得最快。

将rev添加到您的所有转到命令中,您很快就会使用它来简化原本复杂的命令序列。

相关文章