在awk中集成计数器并降低特定列的值
我试图将两个函数合并到我的在awk中集成计数器并降低特定列的值,awk,counter,tolower,Awk,Counter,Tolower,我试图将两个函数合并到我的awk命令中。 我想要tolower列2中Col1中的信息(因此Col1中的信息将是2 cols的值-Col1和Col2,以及Col2中lower中的值),我想要从1-N开始计数,以我拥有的某些标记的开始和结束 数据(以选项卡分隔)当前如下所示: <s> He PRP - could MD - tell VB - she PRP - was VBD - teasing VBG - him PRP - . . . </s>
awk
命令中。
我想要tolower
列2中Col1中的信息(因此Col1中的信息将是2 cols的值-Col1和Col2,以及Col2中lower
中的值),我想要从1-N开始计数,以我拥有的某些标记的开始和结束
数据(以选项卡分隔)当前如下所示:
<s>
He PRP -
could MD -
tell VB -
she PRP -
was VBD -
teasing VBG -
him PRP -
. . .
</s>
<s>
He PRP -
kept VBD -
his PRP$ -
eyes NNS -
closed VBD -
, , -
but CC -
he PRP -
could MD -
feel VB -
himself PRP -
smiling VBG -
. . .
</s>
<s>
He he PRP 1
could could MD 2
tell tell VB 3
she she PRP 4
was was VBD 5
teasing teasing VBG 6
him him PRP 7
. . . 8
</s>
<s>
He he PRP 1-
kept kept VBD 2
his his PRP$ 3
eyes eyes NNS 4
closed closed VBD 5
, , , 6
but but CC 7
he he PRP 8
could could MD 9
feel feel VB 10
himself himself PRP 11
smiling smiling VBG 12
. . . 13
</s>
在这里,我不知道如何把“-”变成一个计数器
第2步(直接给我一个错误):
任何建议1。关于如何解决下位机和计数器以及2。是否可以将这两个步骤结合起来
提前谢谢你我会做如下事情:
$ awk 'BEGIN{FS=OFS="\t"} NF>1{$1=$1 FS tolower($1); $4=++f} NF==1{f=0}1' file
<s>
He he PRP - 1
could could MD - 2
tell tell VB - 3
she she PRP - 4
was was VBD - 5
teasing teasing VBG - 6
him him PRP - 7
. . . . 8
</s>
<s>
He he PRP - 1
kept kept VBD - 2
his his PRP$ - 3
eyes eyes NNS - 4
closed closed VBD - 5
, , , - 6
but but CC - 7
he he PRP - 8
could could MD - 9
feel feel VB - 10
himself himself PRP - 11
smiling smiling VBG - 12
. . . . 13
</s>
$awk'BEGIN{FS=OFS=“\t”}NF>1{$1=$1fs-tolower($1);$4=++f}NF==1{f=0}1'文件
贺贺PRP-1
MD-2可以吗
告诉VB-3
she PRP-4
是VBD-5
逗弄逗弄VBG-6
他是PRP-7
. . . . 8.
贺贺PRP-1
VBD-2
他的PRP是-3美元
眼睛NNS-4
闭式VBD-5
, , - 6
但是CC-7呢
何何PRP-8
MD-9可以吗
手感VB-10
他自己就是PRP-11
微笑的VBG-12
. . . . 13
也就是说,在no
行上设置$1
和$4
,否则重置计数器(是的,我知道它重置了两次,但我现在无法考虑更整洁的事情)。然后1
正常打印
注意,您经常使用
print
和分隔符。最好只更改字段,并在出现真实情况(1
)并使用给定的字段分隔符时,让打印
。一种模型视图控制器:)您可以将RS
设置为
@karakfa是的,我试过了,但后来有点破坏了格式,所以我更喜欢用老方法。无论如何谢谢你!
awk '{print $1 "\t" '$1 = tolower($1)' "\t" $2 "\t" $3}' input > output
$ awk 'BEGIN{FS=OFS="\t"} NF>1{$1=$1 FS tolower($1); $4=++f} NF==1{f=0}1' file
<s>
He he PRP - 1
could could MD - 2
tell tell VB - 3
she she PRP - 4
was was VBD - 5
teasing teasing VBG - 6
him him PRP - 7
. . . . 8
</s>
<s>
He he PRP - 1
kept kept VBD - 2
his his PRP$ - 3
eyes eyes NNS - 4
closed closed VBD - 5
, , , - 6
but but CC - 7
he he PRP - 8
could could MD - 9
feel feel VB - 10
himself himself PRP - 11
smiling smiling VBG - 12
. . . . 13
</s>