我正试图找出正确的方法来实现这一点与awk (不太熟悉的awk),但我似乎无法理解。
基本上,我有一个包含两列的文本文件。我想总结第二列,然后除以第二列的每一项之和,如果结果小于0.25,则增加一个计数器。为了做到这一点,我似乎需要循环两次,一次得到和,一次用和来评估每个条目。我怎么才能用一条线来完成这件事?
Example Input:
0 5
1 5
2 10
3 5
Example Output:
3 (the sum is 25 and three of the entries result in a value less than 0.25 when divided by 25)
我有一个包含4列的文件,如:
A B C D
1 2 3 4
10 20 30 40
100 200 300 400
.
.
.
我可以计算B到D列相对于A列的梯度,例如以下命令:
NR>1{print $0,($2-b)/($1-a)}{a=$1;b=$2}' file
如何打印渐变和作为文件中的第5列?其结果应是:
A B C D sum
1 2 3 4 1+2+3+4=10
10 20 30 40 (20-2)/(10-1)+(30-3)/(10-1)+(40-4)/(10-1)=9
100 200 300 400 (200-20)/(100-10)
是否有一种方法可以根据另一字段中的变量获取字段中值的平均值?例如,对于以下输入
a x 3
b y 4
a y 2
b x 5
b x 20
我要这个输出
a 2.5
b 9.67
我发现这个awk脚本可以获得列中值的平均值。
awk '{ total += $3; count++ } END { print total/count }' file.txt
但是,我如何在其中添加for循环,使第1列中的每个变量都具有平均值呢?
该文件以制表符分隔。
谢谢
我有一个包含n行数的文件,我希望将它的和(基于第3列)合计起来,并相应地将行分配到3个不同的文件中(基于每个文件的和)。
例如,如果我们把所有的第三列值之和,它的总和是516,如果除以3,它就是172。
因此,我想向文件中添加一行,使其不超过172标记,与第二个文件相同,rest所有行都应该移动到第三个文件。
输入文件
a aa 10
b ab 15
c ac 17
a dy 30
y ae 12
a dl 34
a fk 45
l ah 56
o aj 76
l ai 12
q al 09
d pl 34
e ik 30
f ll 10
g dl 15
h fr 17
i dd 23
很抱歉这个冗长的问题,它归结为一个非常简单的问题。
假设有n个文本文件,每个文件包含一列字符串(表示组的名称)和一个整数列(表示这些组中实例的值):
# filename xxyz.log
a 5
a 6
b 10
b 15
c 101
c 100
#filename xyzz.log
a 3
a 5
c 116
c 128
请注意,尽管任何给定文件中两列的长度始终相同,但不同文件的长度不同。此外,并非所有文件都包含相同范围的组(第一个文件包含组a、b、c,而第二个文件仅包含组a和c)。在awk中,用户可以单
我有一个非常长的数据帧(~1100万x 130),其中稀疏填充百分比(0.00 - 100.00,浮点数)。
缺少的条目标记为"NA",如下所示:
cat1 NA NA 99.90 NA NA 10.90 NA
cat2 NA 1.00 NA 19.12 NA NA NA
cat3 NA NA NA NA NA NA 45.00
我想逐行查看这个数据帧,并总结"NA“的出现情况。
通常,通过执行apply(data.frame, 1, fun
如果我有数据的file.txt:
abcd!1023!92
efgh!9873!xk
和一个基本的tutorial.sh文件,它贯穿每一行
while read line
do
name = $line
done < $1
如何将数据在"!“之间进行分离在一个列中选择第二个列并添加它们?(我知道"sed -k 2\ bc“函数,但我不能/不知道如何让它与脚本一起工作。
基本上,我要得到的文件将前三列粘贴到后面,后面是一列空格行,因为看起来没有任何东西被附加到column4中。
我觉得我可能不应该使用我在命令替换中创建的变量,但我不确定如何访问这些我需要的数字
#!/bin/sh # the first file in the expression of a bunch of patients to be made into data files that can be put into the graph
awk '{print "hs"$1,"\t",$2,"\t",$3}' $1 >
我试着写了一个脚本,可以获得多个文件作为输入。文件的每一行都有这样的形式" num1 : num2“,我想将num1和num2保存在两个不同的数组中,然后计算和。
#!/bin/bash
args=("$@")
declare -a X
declare -a Y
for ((i=0; i<=${#args}; i++)) do
input="${args[$i]}"
let j=0
while IFS=: read x y
do
X+=("$x")
Y+=("$y")
let j=j
我有大约50个文件,它们的命名格式是: ERR*.log (即ERR23432.log,ERR12356.log,等等)。我想从每个文件中提取一个特定的信息(值)。在每个文件中,行尾都有值:final pair1 : Total reads after merging results from multiple database和final pair2 : Total reads after merging results from multiple databases。您可以在附加的文件的第62行和第63行中看到这些行。现在,我想要一个脚本,它将提取这些值并将它们添加到每个文件中得到一个值。