我试图想出一个解决这个问题的方法,我需要递增计数,然后在制表符分隔的文本文件的第 1 列中打印唯一值的计数。下面是一个例子:
Run Code Online (Sandbox Code Playgroud)Apple_1 1 300 Apple_2 1 500 Apple_2 500 1500 Apple_2 1500 2450 Apple_3 1 1250 Apple_3 1250 2000
所需的输出是:
Run Code Online (Sandbox Code Playgroud)Apple_1 1 300 1 Apple_2 1 500 1 Apple_2 500 1500 2 Apple_2 1500 2450 3 Apple_3 1 1250 1 Apple_3 1250 2000 2
我知道我可以只打印 NR 就可以在 awk 中打印行号,但我不知道如何为第 1 列的每个唯一值重置它。
感谢您提供的任何帮助,我很感激。
我正在尝试将一些数据转换为每列总数的百分比,与此线程非常相似,只是我需要为每一列执行此操作: Calculate and Divide by total with AWK
数据会像这样(但更多的列和行):
ID Sample1 Sample2 Sample3
One 10 0 5
Two 3 6 8
Three 3 4 7
Run Code Online (Sandbox Code Playgroud)
所需的输出如下所示:
ID Sample1 Sample2 Sample3
One 62.50 0.0 25.0
Two 18.75 60.0 40.0
Three 18.75 40.0 35.0
Run Code Online (Sandbox Code Playgroud)
以下适用于单个列,但我想对每一列都执行此操作,除了第一列。
gawk -F"\t" '{a[NR]=$1;x+=(b[NR]=$2)}END{while(++i<=NR)print a[i]"\t"100*b[i]/x}' file.txt
Run Code Online (Sandbox Code Playgroud)
非常感谢您提供的任何帮助。
我正在尝试从文件中检索匹配的行,但是具有要检索的“索引”或匹配列表的文件也有重复的条目,我也想打印出重复的条目。
例子:
文件 1(索引文件或要匹配的字符串列表)
abc
tgf
abc
ggg
aaa
fff
Run Code Online (Sandbox Code Playgroud)
文件 2(我想为文件 1 中的每个匹配项检索的内容)
Fred 1 3 abc
Amy 2 4 ggg
Dan 5 6 tgf
Mike 9 1 fff
Steve 2 1 aaa
Run Code Online (Sandbox Code Playgroud)
我想要的结果是(顺序不重要,只要我匹配每一行):
Fred 1 3 abc
Dan 5 6 tgf
Fred 1 3 abc
Amy 2 4 ggg
Steve 2 1 aaa
Mike 9 1 fff
Run Code Online (Sandbox Code Playgroud)
我很熟悉,并按如下方式尝试了 grep,但它不会打印重复的条目。
grep -Fwf file1.txt file2.txt
Fred 1 3 abc
Amy 2 4 ggg
Dan 5 6 tgf
Mike 9 1 …
Run Code Online (Sandbox Code Playgroud)