我有一个制表符分隔文件,我想删除仅在前三列中相同的行(保留一个副本).我更喜欢使用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) 我需要从批处理作业中启动2个后台进程,然后等待它们.Unix shell模拟是:
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这是我正在处理的问题:
$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)
请帮忙
插入(通过粘贴)多行文本后,如何移动光标?在做内联插入(粘贴),p并且P工作得很好.但是,如果我粘贴多行文字,我的光标不管p或P移动到新的文本的顶部.
如何将光标留在新文本之后p或P?
我的数据看起来像这样
$ 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) 这两个文件夹有什么区别?为什么我的bean必须进入资源,所以我的网络应用程序工作?
src/main/java Application/Library sources
src/main/resources Application/Library resources
Run Code Online (Sandbox Code Playgroud) 我发现自己每隔一段时间就要做这件事,并且想知道是否有办法简化这个命令?
从本质上讲,我所做的只是复制文件并重新命名.创建的功能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)
我想解析一个字符串并得到"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) 我有一个文件的行如下:
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为每行中的任意数量的列执行此操作?
当我使用像这样的正常值时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不管用...
它抛出未知选项错误,我认为这是由于变量上存在的转义字符造成的
我有个问题.我有一个带坐标的文件(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做那个??? 非常感谢你提前
我找到了我问题的部分答案,但我无法弄清楚其余部分。我正在使用 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 列。
我有一个这样的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)
这两种排序方法如何一起使用?