小编jus*_*guy的帖子

awk 根据坐标范围和精确匹配在字段中打印文本

在AWK下面我想该值相匹配$4file1与值从$4file2之前第一_。我将$4in的值存储在infile1A。然后我在strore值$2作为min,在价值$3max,并且在价值$1chr。如果$1 in A等于array[1],然后我使用存储在值minmax以及chr检查是否存在重叠或不之间$2$3以及$在1个值file2。如果有则overlap打印,但如果没有missing则打印。我试图确保线条匹配并且坐标被覆盖从file1file2. 我的实际数据是以下格式的数千行,并且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

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

awk中唯一文本的错误计数

我使用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)

awk

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

检查excel 2010 vba中是否存在目录

我让用户输入一些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)

excel vba excel-vba

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

awk计算多个文本文件中的字段平均值并合并为一个

我试图计算$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)

bash awk

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

awk输出字段中唯一的文本计数

我试图输出输入文件中唯一文本的计数.它在,$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)

awk

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

提高删除窗口行结尾的Bash循环的性能

编者注:这个问题总是关于循环性能,但最初的标题导致一些回答者 - 和选民 - 相信它是关于如何删除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运行得如此之慢.我不是故意暗示如何删除它们,是在寻求可能加速循环的想法,而且我得到了很多.谢谢 :).我希望这有帮助.

linux bash performance sed gawk

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

在sed或awk中为特定字段添加字符

我试图在选项卡描述文件+中的特定字段$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)

awk sed

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

bash列出某种类型的文件但仅在条件满足时才列出

我想列出特定文件扩展.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)

bash

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

使用awk拆分改进bash循环

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)

bash awk

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

使用perl创建列出目录中所有文本文件的新文件

我试图列出目录中的所有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)

perl

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

awk根据匹配或不匹配输出两个文件

在下面,awk我尝试打印出匹配的行,这些行具有字符串FPRFP $2制表符分隔的输入。如果找到匹配项,$2resultfile在其中没有这些关键字的行中打印。同时,将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)

awk

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

将文件相同前缀的文本文件合并为一个

我正在尝试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)

bash

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

标签 统计

awk ×7

bash ×5

sed ×2

excel ×1

excel-vba ×1

gawk ×1

linux ×1

performance ×1

perl ×1

vba ×1