我有一个ascii文件,内容如下:
START
this is my home
this is my pc
START
this is my linux
this is my awk
this is nice
START
this is a single line
START
this is my work
this is the end
this line has to be read
START
...
...
START
.
.
.
.
我希望读取开始行和空行之间的行,并以分隔格式打印输出。产出应采用以下格式:
this is my home;this is my pc
thi
我需要使用linux命令从两个输入文件创建一个文件。
投入1:
21 33210001 rs60180678 G T 100 PASS AVGPOST=1.0000;RSQ=0.9885;THETA=0.0002;AA=G;AN=2184;VT=SNP;LDAF=0.0019;SNPSOURCE=LOWCOV;AC=4;ERATE=0.0003;AF=0.0018;AFR_AF=0.01 GT:DS:GL
投入2:
21 33210001 . G T . . ;AA=0.0163934;AFE=0;ASNE=0;EUN=0;AFW=0.0113636;MED=0;LAT=0;VT=SNP;AF
我的CSV看起来是这样的:
"212314334","a sentence with new line in it \n
this is the next line","kajdfad","213",ENDOFLINE\r\n
"212314333","another sentence with new line in it \r\n
this is the next line","kawad","21453",ENDOFLINE\r\n
所以在记录的中间可能会有新的
我有以下文件
1:10177 rs367896724 A AC
1:10352 rs555500075 T TA
1:10616 rs376342519 CCGCCGTTGCAAAGGCGCGCCG C
1:11012 rs544419019 C G
1:11063 rs561109771 T G
1:13110 rs540538026 G A
1:13116 rs62635286 T G
1:13118 rs62028691 A G
1:13273 rs531730856 G C
1:13284 rs548333521 GT A
其中最后两列只能具有值ATCG。我想要grep所有在最后两列中
我有一份文件:
bla bla bla
bla bla bla
a rs1
a rs2
a rs3
b rs4
b rs5
b rs6
bla bla bla
bla bla bla
其中rsN是随机的东西。
我试着用a得到最后一行,用b得到第一行
a rs3
b rs4
通过以下方式:
> grep -Po "(?s)^a.*?$.*?^b.*?$" test.regexp
a rs1
a rs2
a rs3
b rs4
但很明显我漏掉了什么。
谢谢。
我有两个有数千行的文本文件。文件A只有一列(ID)
#ID
rs111
rs222
rs333
rs444
文件B如下所示:
#CHROM POS ID REF ALT QUAL ......
22 111 rs111 T C . ....
22 222 rs222 A G ....
22 333 rs666 G T ...
22 444 rs777 A A ..
这是我想要的输出:
#CHROM POS ID REF ALT QUAL ......
22 111 rs111 T C . ....
22 222 rs222 A G ....
也就是说,我只想从文件B中提取那些ID与
file1 rs12345 G C
rs78901 A T file2 3 22745180 rs12345 G C,G
12 67182999 rs78901 A G,T 期望输出 3 22745180 rs12345 G C
12 67182999 rs78901 A T 我试过awk 'NR==FNR {h[$1] = $3; next} {print $1,$2,$3,h[$2]}' file1 file2 生成的输出 3 22745180 rs12345 在输出中将file2的前4列和file1的第3列
表1(选项卡分开):
NC_000001.11 1243 A T 0.14
NC_000005.11 1432 G C 0.0006
NC_000012.12 1284 A T 0.93428
NC_000021.9 9824 T C 0.9
查找表(选项卡分开)-这实际上是巨大的,大约6G this:
NC_000001.11 1243 rs73647921 A T
NC_000005.11 1432 rs75444 G C
NC_000012.12 1284 rs754723 A T
NC_000021.9 9824 rs865545 T C
我希望
我想知道有没有人能帮我解决我遇到的问题?我是Linux的新手,在这个阶段,我发现awk用户指南很难读懂。
假设file.txt包含以下内容:
group position
A 1
A 2
A 5
A 8
B 23
B 556
B 778
C 1
我想在文件中搜索给定的列组合(比方说A组,位置1),然后返回原始位置,并在其旁边的列中返回下一行的位置。
例如。
搜索:A&1返回:1 2
使用grep,我可以提取…下面的代码行
输入:
grep -w -A1 'A.2' fil
我有一个输出,我是管道的awk,并找到了一个好的RS字符串在一些线的末尾。但是,当我将尾随字符串定义为RS时,awk只删除整个行内容。我希望将数据保存到RS字符串中,只有RS从行中删除。
awk的示例输入:
data data data RS_STRING
data SEARCHED_STRING data data
data data
data data data RS_STRING
data data data
data data
data data data RS_STRING
data SEARCHED_STRING data data
data data
希望从awk得到的输出:
我有一个这样的文件:(有308545行)
head output11.bim
1 1:775852:T:C 0 775852 T C
1 1:1120590:A:C 0 1120590 C A
1 1:1145994:T:C 0 1145994 C T
1 1:1148494:A:G 0 1148494 A G
1 1:1201155:C:T 0 1201155 T C
1 1:1468016:T:C 0 1468016 C T
...
另一个文件(标记-info)有前24行注释行,以逗号分隔,
我有这样的档案:
$ head 1kG_MDS6.bim
1 rs2073813 0 753541 A G
1 rs60320384 0 769223 G C
2 rs59066358 0 771967 A G
2 rs1055606 0 778745 G A
3 rs6594026 0 782981 T C
...
我想更改第二列,以便输出文件如下所示:
1 1:753541:G:A 0 753541 A G
1 1:769223:C:G 0 769223 G C
2 2:771
我有一个巨大的.txt文件A,有6列。前5列用制表符分隔,但第5和第6列用空格分隔。有些列缺少元素。使用Unix,如何生成另一个文件B.txt,其中列5和6由一个选项卡分隔?
A.txt
1 886620 rs201016776 T A 1:886620-TG
1 879576 rs115979567 C T
1 886817 rs111748052;rs10465241 C CATTTT JHU_1.886816
1 889255 rs150003341 C T Variant37585
1 891659 rs116557519 G A
我仍然在学习Linux命令,我想知道是否有人能帮助我完成我想做的事情:我有这样一个文件:
3 rs123 0 600001 A G
3 rs345 0 600002 T G
3 3:124369637:A_G 0 124369637 A G
3 3:124369637:G_GT 0 124369637 G GT
在第二次冒号出现后,我试图用"ID“来代替第5列和第6列的长度大于1,而如果长度大于1,则需要删除冒号第二次出现后的任何内容。所以我想这样做: