在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>