在AWK下面我想该值相匹配$4的file1与值从$4在file2之前第一_。我将$4in的值存储在infile1中A。然后我在strore值$2作为min,在价值$3的max,并且在价值$1的chr。如果$1 in A等于array[1],然后我使用存储在值min,max以及chr检查是否存在重叠或不之间$2,$3以及$在1个值file2。如果有则overlap打印,但如果没有missing则打印。我试图确保线条匹配并且坐标被覆盖从file1到file2. 我的实际数据是以下格式的数千行,并且file2. 我也评论了awk,希望它对我有帮助,因为我遇到了语法错误,也许有更好的方法,但我想试试看。
如果我删除{split($4,array,"_")}和 remove array[1],我会得到当前的输出,但不是所有的行都被打印出来overlap,而且我不确定只打印完全匹配的行。
文件 1 tab-delimited
chr19 42373737 42373856 RPS19
chr6 32790021 …Run Code Online (Sandbox Code Playgroud) 我使用awk下面的错误计数.应该计算$5之前的唯一文本-.
输入
chr1 955543 955763 chr1:955543-955763 AGRN-6|gc=75 1 15
chr1 955543 955763 chr1:955543-955763 AGRN-6|gc=75 2 16
chr1 955543 955763 chr1:955543-955763 AGRN-6|gc=75 3 16
chr1 1267394 1268196 chr1:1267394-1268196 TAS1R3-46|gc=68.2 553 567
chr1 1267394 1268196 chr1:1267394-1268196 TAS1R3-46|gc=68.2 554 569
chr1 9781175 9781316 chr1:9781175-9781316 PIK3CD-276|gc=63.1 46 203
chr1 9781175 9781316 chr1:9781175-9781316 PIK3CD-276|gc=63.1 47 206
chr1 9781175 9781316 chr1:9781175-9781316 PIK3CD-276|gc=63.1 48 206
chr1 9781175 9781316 chr1:9781175-9781316 PIK3CD-276|gc=63.1 49 207
Run Code Online (Sandbox Code Playgroud)
电流输出
1
Run Code Online (Sandbox Code Playgroud)
所需的输出(AGRN,TAS1R3,PIK3CD)是唯一的并且是计数的
3
Run Code Online (Sandbox Code Playgroud)
AWK
awk -F '[- …Run Code Online (Sandbox Code Playgroud) 我让用户输入一些MyBarcode and MyScan将用于创建目录的信息.如果该目录存在,我想显示一条消息,指示该目录并返回用户可以输入数据的步骤.它vba位于下方并且似乎起作用,除了目录检查,我需要一些帮助.我希望这是一个好的开始.谢谢 :).
Private Sub CommandButton3_Click()
Dim MyBarCode As String ' Enter Barcode
Dim MyScan As String ' Enter ScanDate
Dim MyDirectory As String
MyBarCode = Application.InputBox("Please enter the last 5 digits of the barcode", "Bar Code", Type:=2)
If MyBarCode = "False" Then Exit Sub 'user canceled
Do
MyScan = Application.InputBox("Please enter scan date", "Scan Date", Date - 1, Type:=2)
If MyScan = "False" Then Exit Sub 'user canceled
If IsDate(MyScan) Then Exit Do
MsgBox …Run Code Online (Sandbox Code Playgroud) 我试图计算$2目录中多个测试文件的平均值,并将输出合并到一个tab-delimeted输出文件中.输出文件是两个字段,其中$1包含已提取的文件名pref,以及$2" is the calculated average with one decimal, rounded up. There is also a header in the outputSample in$ 1 andPercent in$ 2`.下面似乎很接近,但我缺少一些东西(将标题添加到输出,合并到一个制表符分隔文件,并舍入到3个小数位),我不知道该怎么做而没有得到所需的输出.谢谢 :).
123_base.txt
AASS 99.81
ABAT 100.00
ABCA10 0.0
Run Code Online (Sandbox Code Playgroud)
456_base.txt
ABL2 97.81
ABO 100.00
ACACA 99.82
Run Code Online (Sandbox Code Playgroud)
期望的输出(制表符分隔)
Sample Percent
123 66.6
456 99.2
Run Code Online (Sandbox Code Playgroud)
巴什
for f in /home/cmccabe/Desktop/20x/percent/*.txt ; do
bname=$(basename $f)
pref=${bname%%_base_*.txt}
awk -v OFS='\t' '{ sum += $2 } END { if …Run Code Online (Sandbox Code Playgroud) 我试图输出输入文件中唯一文本的计数.它在,$2但我似乎只能使用下面的计数1.谢谢 :).
awk '{sub(/:.*/,"",$2)} !seen[$5]++{unq++} END{print unq}' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
input.txt中
chrX:48544112-48544235 **WAS**:exon.1;WAS:exon.4;WAS:exon.6 271.171
chr5:1282528-1282754 **TERT**:exon.1;TERT:exon.3 349.08
chrX:48547038-48547465 **WAS**:exon.1;WAS:exon.10;WAS:exon.2 42.459
Run Code Online (Sandbox Code Playgroud)
期望的输出
2
Run Code Online (Sandbox Code Playgroud) 编者注:这个问题总是关于循环性能,但最初的标题导致一些回答者 - 和选民 - 相信它是关于如何删除Windows行结尾.
下面的bash循环只是删除windows行结尾并将它们转换为unix并且似乎正在运行,但它很慢.输入文件很小(4个文件,范围从167字节 - 1 kb),并且都是相同的结构(名称列表),唯一不同的是长度(即一些文件是10个名称,其他文件是50).是否需要花费超过15分钟才能使用至强处理器完成此任务?谢谢 :)
for f in /home/cmccabe/Desktop/files/*.txt ; do
bname=`basename $f`
pref=${bname%%.txt}
sed 's/\r//' $f - $f > /home/cmccabe/Desktop/files/${pref}_unix.txt
done
Run Code Online (Sandbox Code Playgroud)
输入.txt文件
AP3B1
BRCA2
BRIP1
CBL
CTC1
Run Code Online (Sandbox Code Playgroud)
编辑
这不是重复,因为我更多地要求为什么我用于删除Windows行结尾的bash循环sed运行得如此之慢.我不是故意暗示如何删除它们,是在寻求可能加速循环的想法,而且我得到了很多.谢谢 :).我希望这有帮助.
我试图在选项卡描述文件+中的特定字段$4中添加一个.谢谢 :).
输入
chr12 9221325 9221448 chr12:9221325-9221448 A2M
chr12 9222330 9222419 chr12:9222330-9222419 A2M
chr12 9223073 9223184 chr12:9223073-9223184 A2M
Run Code Online (Sandbox Code Playgroud)
期望的输出
chr12 9221325 9221448 + A2M
chr12 9222330 9222419 + A2M
chr12 9223073 9223184 + A2M
Run Code Online (Sandbox Code Playgroud)
sed到目前为止(没有特定的领域)
sed 's/$/\t+/' < input > output
Run Code Online (Sandbox Code Playgroud) 我想列出特定文件扩展.vcf使用bash.我遇到的问题是.vcf目录中可能有多个,但只需要一个,但_它只是格式xxx.vcf(name.vcf).我不知道该怎么做,但下面似乎很接近.谢谢 :).
目录文件
123.vcf
123_count.txt
123_variant_list.vcf
Run Code Online (Sandbox Code Playgroud)
庆典
select file in $(cd /home/file/overall/stats;ls *.{vcf});do break;done
echo $file
Run Code Online (Sandbox Code Playgroud)
期望的输出
123.vcf
Run Code Online (Sandbox Code Playgroud) 在awk低于@ hek2mgl运行改善,但它需要15小时才能完成.它基本上将21 - 259条记录的输入文件匹配到11,137,660条记录的文件中.这是很多,但希望它可以更快.也许如果$5在连字符AGRN-6|gc=75上洒了AGRN- 6|gc=75可以加快这个过程.不确定以下是否是一个开始.基本上它的作用是使用有4个输入文件在一个大的11,000,000记录文件中进行搜索和匹配.谢谢 :).
输入
AGRN
CCDC39
CCDC40
CFTR
Run Code Online (Sandbox Code Playgroud)
搜索到的文件
chr1 955543 955763 chr1:955543 AGRN-6|gc=75 1 0
chr1 955543 955763 chr1:955543 AGRN-6|gc=75 2 2
chr1 955543 955763 chr1:955543 AGRN-6|gc=75 3 2
Run Code Online (Sandbox Code Playgroud)
输出($4 $5 average of $7)
chr1:955543 AGRN-6|gc=75 1.3
Run Code Online (Sandbox Code Playgroud)
AWK
BEGIN{FS="[\t| -]+"}
# Read search terms from file1 into 's'
FNR==NR {
s[$0=1]
next
}
{
# Check if $5 matches one of the search terms …Run Code Online (Sandbox Code Playgroud) 我试图列出目录中的所有text文件使用perl.下面的确运行但生成的文件为空.这似乎很接近但可能不是我需要的.谢谢 :).
get_list.pl
#!/bin/perl
# create a list of all *.txt files in the current directory
opendir(DIR, ".");
@files = grep(/\..txt$/,readdir(DIR));
closedir(DIR);
# print all the filenames in our array
foreach $file (@files) {
print "$file\n";
}
Run Code Online (Sandbox Code Playgroud) 在下面,awk我尝试打印出匹配的行,这些行具有字符串FP或RFP $2制表符分隔的输入。如果找到匹配项,$2则result仅file在其中没有这些关键字的行中打印。同时,将removed打印另一个文件,其中包含那些确实包含这些关键字的行。awk如果我只打印一个awk运行,则当我尝试打印两个文件时,其中存在语法错误。谢谢 :)。
输入
12 aaa
123 FP bbb
11 ccc
10 RFP ddd
Run Code Online (Sandbox Code Playgroud)
结果
12 aaa
11 ccc
Run Code Online (Sandbox Code Playgroud)
已移除
123 FP bbb
10 RFP ddd
Run Code Online (Sandbox Code Playgroud)
awk
awk -F'\t' 'BEGIN{d["FP"];d["RFP"]}!($2 in d) {print > "removed"}; else {print > "result"}' file
awk: cmd. line:1: BEGIN{d["FP"];d["RFP"]}!($2 in d) {print > "removed"}; else {print > "result"}
awk: cmd. line:1: ^ syntax error
Run Code Online (Sandbox Code Playgroud) 我正在尝试bash将目录中具有相同前缀的所有文本文件合并/组合成一个文本文件。谢谢 :)。
目录
111.txt
aaa
aaa
222_1.txt
bbb
222_2.txt
ccc
ccc
333_1.txt
aaa
333_2.txt
ccc
ccc
333_3.txt
bbb
Run Code Online (Sandbox Code Playgroud)
想要的
111.txt
aaa
aaa
222.txt
bbb
ccc
ccc
333.txt
aaa
ccc
ccc
bbb
Run Code Online (Sandbox Code Playgroud)
猛击
for file in `ls`|cut -d"_" -f1 ; do
cat ${file}_* > ${file}
done
Run Code Online (Sandbox Code Playgroud)