📜  awk 如何打印而不在字段之间添加空格 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:34.167000             🧑  作者: Mango

使用awk在打印时不在字段之间添加空格

在awk中,默认情况下,每个字段之间都会添加一个空格进行分隔。但有时,我们可能想要在打印时去掉这些空格,只保留字段本身的内容。本文将介绍如何使用awk来实现这一目的。

方法一:使用OFS变量

awk提供了一个名为OFS(Output Field Separator)的变量,它定义了字段之间的分隔符。默认情况下,OFS的值为一个空格,因此字段之间会有空格分隔。

要在打印时去掉字段之间的空格,我们可以通过将OFS设置为空字符串来实现。以下是示例代码:

awk 'BEGIN {OFS=""} {print $0}' input.txt

这里的BEGIN块用于在处理输入之前设置OFS的值为空字符串。$0代表当前记录的整行内容,通过print $0将其打印出来。

方法二:使用printf函数

另一种方法是使用awk的printf函数。printf函数可以按照指定的格式打印输出,通过使用格式字符串%s来打印字段而不添加额外的空格。

以下是示例代码:

awk '{printf "%s", $0}' input.txt

这里的%s指示printf函数将字段按照字符串的格式打印出来,而不添加额外的空格。

示例

假设我们有一个名为input.txt的文件,其中包含以下内容:

Hello   World
This    is    awk
Print   without   spaces

我们可以使用上述方法来打印文件中的内容,而不在字段之间添加空格。以下是示例输出:

HelloWorld
Thisisawk
Printwithoutspaces

这样我们就实现了在awk中打印而不在字段之间添加空格的目标。

希望以上内容对你有帮助!