Regex 按空格序列分割的awk
Regex 按空格序列分割的awk,regex,awk,split,whitespace,separator,Regex,Awk,Split,Whitespace,Separator,split(字符串、数组、分隔符)在awk中是否可以使用空格序列作为分隔符(或者更一般地使用任何regexp作为分隔符) 显然,可以使用内部autosplit(以FS变量的值作为分隔符在输入的每一行上运行),并使用simplefor和$0魔术来实现这一点。然而,我只是想知道是否有一种更直接的方法可以使用GNU awk(1)手册页面中的拆分本身。: split(s, a [, r]) 将字符串s拆分为正则表达式r上的数组a,并返回字段数。如果省略r,则使用FS 这里的要点是,您可以使用任何正则表
split(字符串、数组、分隔符)
在awk中是否可以使用空格序列作为分隔符(或者更一般地使用任何regexp作为分隔符)
显然,可以使用内部autosplit(以FS
变量的值作为分隔符在输入的每一行上运行),并使用simplefor
和$0
魔术来实现这一点。然而,我只是想知道是否有一种更直接的方法可以使用GNU awk(1)手册页面中的拆分本身。:
split(s, a [, r])
将字符串s拆分为正则表达式r上的数组a,并返回字段数。如果省略r,则使用FS
这里的要点是,您可以使用任何正则表达式来执行字段拆分——至少您可以使用gawk。如果您正在使用其他内容,则需要检查您的文档。来自GNU awk(1)手册页面:
split(s, a [, r])
将字符串s拆分为正则表达式r上的数组a,并返回字段数。如果省略r,则使用FS
这里的要点是,您可以使用任何正则表达式来执行字段拆分——至少您可以使用gawk。如果您正在使用其他内容,则需要检查您的文档。说明:
这将字符串分成由fieldsep分隔的片段,并存储
成串的碎片。第一块存储在数组[1]中,第二块
数组中的片段[2],以此类推。第三个字符串的字符串值
参数fieldsep是一个regexp,描述在何处拆分字符串
as FS可以是一个regexp,描述在何处拆分输入记录)。如果
省略字段sep,使用FS的值。split返回
创建的元素数。然后,split函数分割字符串
以类似于将输入行拆分为
田地
下面是一个简短(有点愚蠢)的示例,它使用一个简单的正则表达式“.s”
,它将匹配任何单个字符,后跟一个小写的s
和一个空格。拆分的结果被放入数组a
。请注意,匹配的零件不会放置到阵列中
BEGIN {
s = "this isn't a string yes isodore?"
count = split(s, a, ".s ")
printf("number of splits: %d\n", count)
print "Contents of array:"
for (i = 1; i <= count; i++)
printf "a[%d]: %s\n", i, a[i]
}
本文展示了一个使用split()
解析行的示例。这包含一个使用正则表达式将数据拆分为
数组。表示:
这将字符串分成由fieldsep分隔的片段,并存储
成串的碎片。第一块存储在数组[1]中,第二块
数组中的片段[2],以此类推。第三个字符串的字符串值
参数fieldsep是一个regexp,描述在何处拆分字符串
as FS可以是一个regexp,描述在何处拆分输入记录)。如果
省略字段sep,使用FS的值。split返回
创建的元素数。然后,split函数分割字符串
以类似于将输入行拆分为
田地
下面是一个简短(有点愚蠢)的示例,它使用一个简单的正则表达式“.s”
,它将匹配任何单个字符,后跟一个小写的s
和一个空格。拆分的结果被放入数组a
。请注意,匹配的零件不会放置到阵列中
BEGIN {
s = "this isn't a string yes isodore?"
count = split(s, a, ".s ")
printf("number of splits: %d\n", count)
print "Contents of array:"
for (i = 1; i <= count; i++)
printf "a[%d]: %s\n", i, a[i]
}
本文展示了一个使用split()
解析行的示例。这包含一个使用正则表达式将数据拆分为
一个数组。你能告诉我们你想完成什么任务,并提供一些输入/输出示例吗。拆分可能有其他选择。您能否告诉我们您试图完成的任务,并提供一些输入/输出示例。拆分可能还有其他方法。man
页面的GNU扩展部分只提到使用空字符串拆分单个字符。通常将正则表达式与FS
和split()
一起使用不是扩展。man
页面的GNU扩展部分仅指使用空字符串拆分单个字符。通常将正则表达式与FS
和split()
一起使用不是扩展。