小编Val*_*tti的帖子

BASH中多列文件的反向排序顺序

我有以下文件:

1 2 3
1 4 5
1 6 7
2 3 5
5 2 1
Run Code Online (Sandbox Code Playgroud)

我希望文件按第二列排序,但从最大数量(在本例中为6)到最小数量.我试过了

sort +1 -2 file.dat
Run Code Online (Sandbox Code Playgroud)

但它给了我颠倒的顺序.

结果应该是:

1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
Run Code Online (Sandbox Code Playgroud)

unix linux sorting bash awk

30
推荐指数
2
解决办法
4万
查看次数

如何将文件中的列添加到另一个文件

我有一个有两列的文件

1 1
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

以及一列为的文件

6
7
9
Run Code Online (Sandbox Code Playgroud)

我想在第一个文件中添加第二个文件.输出应该是:

1 1 6
2 3 7
3 4 9
Run Code Online (Sandbox Code Playgroud)

bash awk

22
推荐指数
2
解决办法
5万
查看次数

两个不同文件中的总和数

我有两个相同长度的文件,如:

0.99952 0.01
0.98927 0.02
0.98242 0.03
Run Code Online (Sandbox Code Playgroud)

-0.758 0.01
-0.745 0.02
-0.742 0.03
Run Code Online (Sandbox Code Playgroud)

我想将第一列数相加并将其打印在一个新文件中,并在第二列中包含相同的元素.输出应该是:

0.24152 0.01
0,24427 0.02
0,24042 0.03
Run Code Online (Sandbox Code Playgroud)

我试过了

 paste file1 file2 | awk '{print ($1 + $2), $4}' > sum
Run Code Online (Sandbox Code Playgroud)

但输出是:

 1.00952 0.01
 1.00927 0.02
 1.01242 0.03
Run Code Online (Sandbox Code Playgroud)

bash shell awk

6
推荐指数
2
解决办法
8800
查看次数

使用awk从两个文件中写一个两列文件

我有两个文件,每个文件一列

1
2
3
Run Code Online (Sandbox Code Playgroud)

4
5
6
Run Code Online (Sandbox Code Playgroud)

我想写一个包含两个元素的唯一文件

1 4
2 5
3 6
Run Code Online (Sandbox Code Playgroud)

我觉得用awk应该很简单.

unix linux bash shell awk

4
推荐指数
1
解决办法
3766
查看次数

如何删除bash(awk)中有2个条件的行

我有以下问题:我有一个文件,如:

1 3 4
2 5 6
3 1 3
4 1 0
5 7 0
6 0 1
Run Code Online (Sandbox Code Playgroud)

我想删除包含在第二列1和第三列中的数字0的行.所以结果应该是:

1 3 4
2 5 6
3 1 3
5 7 0
6 0 1
Run Code Online (Sandbox Code Playgroud)

我尝试过: awk '$2!=1 && $3 != 0' file

但它也将删除行:'5 7 0'和'3 1 3'

有帮助吗?

bash awk

3
推荐指数
1
解决办法
1764
查看次数

找出两个文件之间的区别

我有以下情况:

file1.dat如下:

1 2
1 3
1 4
2 1
Run Code Online (Sandbox Code Playgroud)

和file2.dat是这样的:

1 2
2 1
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

我想找到第一个文件中的第二个文件之间的差异.我尝试过机智,grep -v -f file1 file2但我的真实文件比这两个更大,当我尝试使用它时,shell永远不会结束.

结果应该是:

2 3
3 4
Run Code Online (Sandbox Code Playgroud)

文件已排序,它们具有相同数量的元素.有没有找到awk解决方案的方法?

awk

1
推荐指数
1
解决办法
5573
查看次数

使用awk统计文件中数字出现的频率

我有以下文件:

1
1
2
3
3
3
4
4
5
5
5
5
Run Code Online (Sandbox Code Playgroud)

我想统计一个数字出现了多少次,频繁出现了多少次:例如,数字1出现2次,数字2出现1次,数字3出现3次,数字4出现2次,数字5出现4次; 输出将是一个两列文件,其中第一列表示数字在该列中出现的次数,第二列表示数字重复的次数,:

2 2  %(because the number 1 and number 4 appear 2 times and there are only 2 number that appear this often)
1 3
1 1
1 4
Run Code Online (Sandbox Code Playgroud)

我希望输出示例文件可以帮助理解......

awk

1
推荐指数
1
解决办法
4735
查看次数

找到两个文件之间的相似之处

我有两个文件:

1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

和一个有两列的文件

1 0.11
2 0.12748
5 0.45
12 0.48
7 0.48
8 0.7
13 0.78
14 0.88
Run Code Online (Sandbox Code Playgroud)

我想找到两个文件之间的相似之处.如果在两个文件中,文件1中的数字也在文件2的第一列中,则表示它必须出现在输出文件中.输出应该是:

1 0.11
2 0.12748
5 0.45
7 0.48
8 0.7
Run Code Online (Sandbox Code Playgroud)

我尝试使用不同的grep组合,但它不起作用.

bash awk

1
推荐指数
1
解决办法
2177
查看次数

从数组中删除元素,了解其索引

我有一个阵列@k.我想创建一个@j可以复制@k内容但没有第n个元素的新数组.

我有@k=(1,1,1,3,4); 我希望这@j有所有@k的元素,但不是k[2],即@j=(1,1,3,4);

我试过@j=grep {$k[$_] != $k[$selectedIndex]} @k;但在这里它会选择数组的值而不是他的索引.

perl grep

1
推荐指数
1
解决办法
117
查看次数

根据值过滤pandas DataFrame中的行

我有类似下面的DataFrame(这只是一个示例):

i   TIME    CITIES_LABEL    Value   lat_rounded long

2   2005    Tilburg         22 250  52.070498   4.300700 
3   2005    Amsterdam       45 825  52.370216   4.895168
4   2005    Rotterdam       27 600  51.924420   4.477733
5   2005    Utrecht         12 915  52.090737   5.121420
6   2005    Eindhoven       9 165   51.441642   5.469722
7   2006    Tilburg         7 800   51.560596   5.091914
8   2005    Groningen       7 620   53.219383   6.566502
9   2005    Enschede        6 250   52.221537   6.893662
10  2005    Arnhem          6 025   51.985103   5.898730
11  2006    Utrecht         3 400   50.888174   5.979499
12  2006    Amsterdam …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas pandas-groupby

1
推荐指数
1
解决办法
122
查看次数

用awk写出文件每行的元素数量及其重复次数

我有一个包含所有不同整数的文件,其中每行可能有不同的长度,如下所示:

1 2 3 4 5
16 7 8
9 10 101 102 13 14
15 6 17 
24 28 31 30 18
Run Code Online (Sandbox Code Playgroud)

我想在输出中打印一行所呈现的元素数量以及每行有相同元素数量的次数; 这个例子的输出应该是:

3 2
5 2
6 1
Run Code Online (Sandbox Code Playgroud)

在第一列中,每行有元素数,第二列是呈现相同元素数的行数.

文件中的第一行有5个元素,还有第5行等.

bash shell awk

0
推荐指数
1
解决办法
884
查看次数

填写文件中的列表

我有一个文件,其中包含用逗号分隔的单词,如:

tom,harry,ant,qqqq
aa,ww,rr,gg,aa,hh,ss
Run Code Online (Sandbox Code Playgroud)

我想拆分用逗号分隔的每个元素并填充如下列表:

array=['tom','harry','ant','qqqq','aa','ww','rr','gg','aa','hh','ss']
Run Code Online (Sandbox Code Playgroud)

到目前为止,我试过:

array=list()

for i in open(filename):
    element = i.split(',',len(i))
    array.append(element)
Run Code Online (Sandbox Code Playgroud)

当我打印时,我遇到两个问题:

for i in array 
    print i
Run Code Online (Sandbox Code Playgroud)

我获得['tom','harry','ant','qqqq\n']['qqqq','aa','ww','rr','gg','aa','hh','ss\n']

我想避免\n和之前有一个独特的列表

python string python-2.7

0
推荐指数
1
解决办法
135
查看次数

标签 统计

awk ×9

bash ×7

shell ×3

linux ×2

python ×2

unix ×2

dataframe ×1

grep ×1

group-by ×1

pandas ×1

pandas-groupby ×1

perl ×1

python-2.7 ×1

sorting ×1

string ×1