📅  最后修改于: 2023-12-03 15:13:34.167000             🧑  作者: Mango
在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中打印而不在字段之间添加空格的目标。
希望以上内容对你有帮助!