小编Ken*_*ent的帖子

当三列相同时删除行

我有一个制表符分隔文件,我想删除仅在前三列中相同的行(保留一个副本).我更喜欢使用unix,例如awk或uniq.

输入文件:

Supercontig_1.1 241783  286397  5677    52
Supercontig_1.1 241783  286397  5678    53
Supercontig_1.1 241783  286397  5679    53
Supercontig_1.2 10500  25700  3000    57
Supercontig_1.2 10500  25700  3001    59
Supercontig_1.2 10500  25700  3002    59
Supercontig_1.3 2000  7000  5686    60
Supercontig_1.3 2000  7000  5687    60
Run Code Online (Sandbox Code Playgroud)

输出:

 Supercontig_1.1 241783  286397  5677    52
 Supercontig_1.2 10500  25700  3000    57
 Supercontig_1.3 2000  7000  5686    60
Run Code Online (Sandbox Code Playgroud)

unix awk uniq

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

Windows批处理:在后台运行进程并等待它

我需要从批处理作业中启动2个后台进程,然后等待它们.Unix shell模拟是:

myprocess1 -flags1 &
pid1=$!

myprocess2 -flags2 &
pid2=$!

wait ${pid1}
wait ${pid2}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

windows batch-file windows-shell

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

vi编辑器中将数字列转换为行的命令是什么?

这是我正在处理的问题:

$cat k    
23
22
35
24
42
:
:
36
Run Code Online (Sandbox Code Playgroud)

我有这样的文件,我想使用vim转换它像这样.

22,23,35,24,42,8,......,36 
Run Code Online (Sandbox Code Playgroud)

请帮忙

vim

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

vim - 插入文本后移动光标

插入(通过粘贴)多行文本后,如何移动光标?在做内联插入(粘贴),p并且P工作得很好.但是,如果我粘贴多行文字,我的光标不管pP移动到新的文本的顶部.

如何将光标留在新文本之后pP

vim

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

使用Shell命令排序文件

我的数据看起来像这样

$ cat file
(71149, 3079, 68070, 0.0433) Alex
(51135, 2881, 48254, 0.0563) Brandon
(27231, 7105, 20126, 0.2609) Chad
(8365, 3634, 4731, 0.4344) Daniel
(7490, 7346, 144, 0.9808) Eliz
(6841, 3917, 2924, 0.5726) Frank
(6740, 7393, -653, 1.0969) Gates
(5084, 500, 4584, 0.0983) Harry
(5044, 3913, 1131, 0.7758) Ian
(4760, 699, 4061, 0.1468) Jack
....
Run Code Online (Sandbox Code Playgroud)

我想按括号中的最后一个元素对内容进行排序,如何在命令行中执行此操作.

$ cat file | ... magic ... 
(6740, 7393, -653, 1.0969) Gates
(7490, 7346, 144, 0.9808) Eliz
(5044, 3913, 1131, 0.7758) Ian
(6841, 3917, …
Run Code Online (Sandbox Code Playgroud)

sorting bash shell awk sed

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

Maven来源与资源

这两个文件夹有什么区别?为什么我的bean必须进入资源,所以我的网络应用程序工作?

src/main/java Application/Library sources
src/main/resources Application/Library resources
Run Code Online (Sandbox Code Playgroud)

java maven

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

简化BASH命令

我发现自己每隔一段时间就要做这件事,并且想知道是否有办法简化这个命令?

从本质上讲,我所做的只是复制文件并重新命名.创建的功能A1, A2.. B1, B2..不可协商的 :)因此,嵌套的for循环.

注意,我对创建一个实际的脚本文件不感兴趣.我需要一些快速而又脏的东西.

bash> for x in {A..B}; do for i in {1..4};do cp orig.xml prefix_$x$i.xml; done;done
Run Code Online (Sandbox Code Playgroud)

系统信息

平台: SunOS

Bash版本: GNU bash, version 3.00.16(1)-release (i386-pc-solaris2.10)

unix linux bash shell solaris

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

用正则表达式查找字符串中的模式 - >如何改进我的解决方案

我想解析一个字符串并得到"stringIAmLookingFor"它的一部分,它"\_"在结尾和开头被包围.我正在使用正则表达式匹配,然后删除"\_"找到的字符串中的.这是有效的,但我想知道是否有一个更优雅的方法来解决这个问题?

String test = "xyz_stringIAmLookingFor_zxy";
Pattern p = Pattern.compile("_(\\w)*_");
Matcher m = p.matcher(test);
while (m.find()) { // find next match
    String match = m.group();
    match = match.replaceAll("_", "");
    System.out.println(match);
}
Run Code Online (Sandbox Code Playgroud)

java regex

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

AWK - 找到任意大小的每行的最小值

我有一个文件的行如下:

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

我想在每一行得到min,所以例如上面给出的输入,我应该得到:

min of first line:  2
min of second line: 1
..
Run Code Online (Sandbox Code Playgroud)

如何使用awk为每行中的任意数量的列执行此操作?

awk min

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

我需要用 url 替换使用 SED 的字符串

当我使用像这样的正常值时a=10

我能够让 sed 查找/替换工作

  sed -e "s/xxx/$a/g" a.txt
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用像这样的变量时a=http://xyz.com

sed -e "s/xxx/$a/g" a.txt不管用...

它抛出未知选项错误,我认为这是由于变量上存在的转义字符造成的

linux shell sed

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

计算距离; 使用awk从第一行的第二列中减去第二行的第一列

我有个问题.我有一个带坐标的文件(TAB分开)

2 10
35 50
90 200
400 10000
...
Run Code Online (Sandbox Code Playgroud)

我想从第一行的第二列中减去第二行的第一列,即计算距离,即我想要一个文件

25
40
200
...
Run Code Online (Sandbox Code Playgroud)

我怎么能用awk做那个??? 非常感谢你提前

bash awk sed

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

使用awk按列匹配时如何删除原始行和重复行?

我找到了我问题的部分答案,但我无法弄清楚其余部分。我正在使用 awk。我可以使用以下命令删除原始行和重复行:

awk 'NR==FNR{a[$0]++;next} a[$0]<2' infile infile
Run Code Online (Sandbox Code Playgroud)

然而,这需要复制整条线。有谁知道在按第 1 列匹配时如何删除原始行和重复行?

我试过这个

awk 'key[$1]; NR==FNR{a[$0]++;next} a[$0]<2' infile infile
Run Code Online (Sandbox Code Playgroud)

但这并没有让我去任何地方。我有一个包含以下类型数据的文件:

srv13108 f15001:/export/rack131/srv13108
srv13407 f15001:/export/rack134/srv13407
srv13501 f13901:/export/rack135/srv13501
srv13501 f14001:/export/rack135/srv13501
srv13609 f14901:/export/rack136/srv13609 
srv14407 f14101:/export/rack144/srv14407

我希望输出是:

srv13108 f15001:/export/rack131/srv13108
srv13407 f15001:/export/rack134/srv13407
srv13609 f14901:/export/rack136/srv13609
srv14407 f14101:/export/rack144/srv14407

由于 2 行具有匹配的第 1 列。

linux shell awk

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

如何将不同的排序方法应用于BASH中CSV文件中的不同列?

我有一个这样的CSV文件:

fish,4
cat,1
elephant,1
tree,2
dog,8
car,10
Run Code Online (Sandbox Code Playgroud)

awk -F',' '{print length($1),$0}' file.csv | sort -k1nr | cut -d' ' -f 2- 对于出现在第一列中的所有单词,将按字长对文件进行排序:

elephant,1
fish,4
tree,2
cat,1
dog,8
car,10
Run Code Online (Sandbox Code Playgroud)

sort -t, -k+2 -n -r file.csv 将根据第二列中出现的数字将文件从最大到最小排序:

car,10
dog,8
fish,4
tree,2
elephant,1
cat,1
Run Code Online (Sandbox Code Playgroud)

如何将这两个命令一起使用,使CSV文件首先按字长排序,根据第一列中出现的字,然后在第一列中包含相等长度字的任何行根据出现的数字排序.从最大到最小的第二列.结果输出如下所示:

elephant,1
fish,4
tree,2
car,10
dog,8
cat,1
Run Code Online (Sandbox Code Playgroud)

这两种排序方法如何一起使用?

sorting bash shell awk

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

标签 统计

awk ×6

shell ×5

bash ×4

linux ×3

sed ×3

java ×2

sorting ×2

unix ×2

vim ×2

batch-file ×1

maven ×1

min ×1

regex ×1

solaris ×1

uniq ×1

windows ×1

windows-shell ×1