我有一个文件file.gz,当我尝试使用 解压缩该文件时gunzip file.gz,它解压缩了该文件,但仅包含已提取并删除的file.gz文件。
如何通过保留解压缩文件和压缩文件来解压缩?
我有大约 30K 行的 input.txt 制表符分隔的文本文件,我想检查每一行(s1..s30K 行)的缺失值(即空格)并用零值填充缺失值。See out.txt
输入文件
id no1 no2 no3 no4
s1 23 34 45 12
s2 4 4
s3 4 8 0
Run Code Online (Sandbox Code Playgroud)
输出.txt
id no1 no2 no3 no4
s1 23 34 45 12
s2 0 4 4 0
s3 4 0 8 0
Run Code Online (Sandbox Code Playgroud) 当我尝试将文件名从 更改old.file(1).gz为 时new.file.gz,它说语法错误,我使用的是 ubuntu 12.04。
mv old.file(1).gz new.file.gz
bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud) 文件1.txt
id No
gi|371443199|gb|JH556661.1| 7907290
gi|371443198|gb|JH556662.1| 7573913
gi|371443197|gb|JH556663.1| 7384412
gi|371440577|gb|JH559283.1| 6931777
Run Code Online (Sandbox Code Playgroud)
文件2.txt
id P R S
gi|367088741|gb|AGAJ01056324.1| 5 5 0
gi|371443198|gb|JH556662.1| 2 2 0
gi|367090281|gb|AGAJ01054784.1| 4 4 0
gi|371440577|gb|JH559283.1| 21 19 2
Run Code Online (Sandbox Code Playgroud)
输出.txt
id P R S NO
gi|371443198|gb|JH556662.1| 2 2 0 7573913
gi|371440577|gb|JH559283.1| 21 19 2 6931777
Run Code Online (Sandbox Code Playgroud)
File1.txt 有两列,File2.txt 有四列。我想加入两个具有唯一 id 的文件(array[1] 应该在两个文件(file1.txt 和 file2.txt)中匹配,并只给出匹配的 id(参见 output.txt)。
我试过了join -v <(sort file1.txt) <(sort file2.txt)。请求任何有关 awk 或 join 命令的帮助。
input.txt(大约 30K 行)
RT|367079254|bn|ERTS01065811.1| 38 1 503
RT|367079251|bn|ERTS01065814.1| 56 3 502
RT|367079248|bn|ERTS01065817.1| 52 2 502
Run Code Online (Sandbox Code Playgroud)
输出.txt
RT|367079254|bn|ERTS01065811.1|
38
1
503
RT|367079251|bn|ERTS01065814.1|
56
3
502
RT|367079248|bn|ERTS01065817.1|
52
2
502
Run Code Online (Sandbox Code Playgroud) 我想在输入文件中将第 1 列与第 2 列(直到文件结束)相乘,并且应该在单独的文件中输出 1 列并乘以 3 列。
输入.txt:
1 677679866
2 121867616
3 49413198
4 40415982
Run Code Online (Sandbox Code Playgroud)
输出.txt:
1 677679866
2 243735232
3 148239594
4 161663928
Run Code Online (Sandbox Code Playgroud) 输入文件
EN1
EN2
EN3
EN4
EN5
Run Code Online (Sandbox Code Playgroud)
输出
EN1,EN2,EN3,EN4,EN5
Run Code Online (Sandbox Code Playgroud)
我试过 awk。但它不是用逗号打印
awk 'BEGIN { OFS = ","} { printf $1}' input.txt
Run Code Online (Sandbox Code Playgroud)
我有 GNU Awk 4.0.0 版本
给定一个包含两列的文件:
Id ht
510 69
510 67
510 65
510 62
510 59
601 29
601 26
601 21
601 20
Run Code Online (Sandbox Code Playgroud)
我需要一种方法将具有相同 ID 的所有行合并为具有平均高度的行。在这种情况下,(69 + 67 + 65 + 62 + 59) / 5 = 64 和 (29 + 26 + 21 + 20) / 4 = 24,所以输出应该是:
Id Avg.ht
510 64
601 24
Run Code Online (Sandbox Code Playgroud)
我如何使用 sed/awk/perl 做到这一点?
我有带有空格分隔字段的长文本文件:
cat file1.txt
Id leng sal mon
25671 34343 56565 5565
44888 56565 45554 6868
23343 23423 26226 6224
77765 88688 87464 6848
66776 23343 63463 4534
cat file2.txt
Id number
25671 34343
76767 34234
23343 23423
66776 23343
cat output.txt
Id leng sal mon
44888 56565 45554 6868
77765 88688 87464 6848
Run Code Online (Sandbox Code Playgroud)
file1.txt有四列,file2.txt有两列。我想比较$1两个文件 ( file1.txt, file2.txt) 中的第一列 ( )并输出在file2.txt.
我试过了
join -v1 file1.txt file2.txt >output.txt
Run Code Online (Sandbox Code Playgroud)
但是输出有一些错误。任何awk/sed命令表示赞赏。
TTTTOTTT00000000008 RTTTT899 5.00E-28
TTTTOTTT00000000046 RTTTWRR 3.00E-31
TTTTOTTT00000000051 2.00E-11
TTTTOTTT00000000051 7.00E-12
TTTTOTTT00000000054 5.00E-22
TTTTOTTT00000000061 YTRYR 1.00E-11
TTTTOTTT00000000078 ETNRR8 6.00E-17
TTTTOTTT00000000174 TYTYT 1.00E-11
TTTTOTTT00000000203 UUUE 9.00E-20
Run Code Online (Sandbox Code Playgroud)
我的文件与列混合在一起。在这个文件(input.txt)中。第 3 列有空格,列应填充第 2 行,第 2 列应替换为无
TTTTOTTT00000000008 RTTTT899 5.00E-28
TTTTOTTT00000000046 RTTTWRR 3.00E-31
TTTTOTTT00000000051 none 2.00E-11
TTTTOTTT00000000051 none 7.00E-12
TTTTOTTT00000000054 none 5.00E-22
TTTTOTTT00000000061 YTRYR 1.00E-11
TTTTOTTT00000000078 ETNRR8 6.00E-17
TTTTOTTT00000000174 TYTYT 1.00E-11
TTTTOTTT00000000203 UUUE 9.00E-20
Run Code Online (Sandbox Code Playgroud)