gpt4 book ai didi

linux - 根据编号将行号分配给其中一个字段。每行中的字段数

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:48 24 4
gpt4 key购买 nike

我需要像这样使用 awk 命令来操作我的数据文件之一。我怎样才能使用 awk 来完成这个任务?任何意见将不胜感激。谢谢。

1) Get the no. of fields for each row.
(a) If the count_of_fields = 'x' then assign a value to nth field in each row.

输入:-

1,x,A,B
2,A,B,C
3,x,C,D
4,D,E,F,G
5,x,E,F

**

输出

**:-

1,1,A,B
2,A,B,C
3,3,C,D
4,D,E,F,G
5,5,E,F

x- is the 2nd column where I would like to assign NR when NF=4
n - This is the 2nd column.

最佳答案

你的问题不完全清楚。
在 awk 中,内置变量 NFNR 分别表示每行中的字段数和记录/行号。

为了从给定的输入中获得所需的输出,我将执行以下操作:

awk 'BEGIN{OFS=FS=","}$2=="x"{$2=NR}1' test.txt

这会将第二列中的每个 x 替换为行号:

1,1,A,B
2,A,B,C
3,3,C,D
4,D,E,F,G
5,5,E,F

更新:如果您想在字段数等于 4 的情况下用 NR 替换第二列的内容:

awk 'BEGIN{OFS=FS=","}NF==4{$2=NR}1' test.txt

输出:

1,1,A,B
2,2,B,C
3,3,C,D
4,D,E,F,G
5,5,E,F

关于linux - 根据编号将行号分配给其中一个字段。每行中的字段数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com