fold命令

时间:2020-03-21 11:47:53  来源:igfitidea点击:

我们是否曾经遇到过要折叠或者破坏命令输出以适合特定宽度的情况?
在运行VM(尤其是没有GUI的服务器)时,我几次遇到这种情况。
以防万一,如果我们想将命令的输出限制为特定的宽度,那就别无所求!只需使用fold命令! fold命令将输入文件中的每一行换行以适合指定的宽度,并将其打印到标准输出中。

在这个简短的教程中,我们将通过实际示例了解fold命令的用法。

fold示例

折叠命令是GNU coreutils软件包的一部分,因此让我们不必理会安装。

fold命令的典型语法:

fold [OPTION]... [FILE]...

请允许我向我们展示一些示例,以便我们可以更好地了解fold命令。
我有一个名为linux.txt的文件,带有一些随机行。

要将以上文件中的每一行都包装为默认宽度,请运行:

$fold linux.txt

每行80列是默认宽度。
这是上面命令的输出:

如我们在上面的输出中看到的,fold命令将输出限制为80个字符的宽度。

当然,我们可以指定首选宽度,例如50,如下所示:

$fold -w50 linux.txt

输出示例为:

我们不仅可以显示输出,还可以将输出写入新文件,如下所示:

$fold -w50 linux.txt > linux1.txt

上面的命令将linux.txt的行换成50个字符的宽度,并将输出写入名为linux1.txt的新文件。

让我们检查新文件的内容:

$cat linux1.txt

我们是否密切注意先前命令的输出?
行之间有些单词断了。
为了克服这个问题,我们可以使用'-s'标志来在空格处换行。

以下命令将给定文件中的每一行包装为宽度“ 50”,并在空格处将其中断:

$fold -w50 -s linux.txt

现在,输出非常清晰。
该命令将每个空格分隔的单词放在换行符中,并包装长度大于50的单词。

在以上所有示例中,我们都按列限制了输出宽度。
但是,我们可以将输出的宽度强制为使用-b选项指定的字节数。
以下命令将输出中断为20个字节。

$fold -b20 linux.txt