小编lon*_*r21的帖子

在awk中对关联数组进行排序

我在awk中有一个关联数组,它被填充如下:

chr_count[$3]++
Run Code Online (Sandbox Code Playgroud)

当我尝试打印我的时候chr_counts,我用这个:

for (i in chr_count) {
    print i,":",chr_count[i];
}
Run Code Online (Sandbox Code Playgroud)

但毫不奇怪,i的顺序没有以任何方式排序.是否有一种简单的方法来迭代排序的键chr_count

arrays sorting awk associative

20
推荐指数
5
解决办法
3万
查看次数

在xargs中使用用户定义的bash函数

我在.bashrc中有这个自定义函数:

function ord() {
  printf '%d' "'$1"
}
Run Code Online (Sandbox Code Playgroud)

如何让这个函数与xargs一起使用?:

cat anyFile.txt | awk '{split($0,a,""); for (i=1; i<=100; i++) print a[i]}' | xargs -i ord {}
xargs: ord: No such file or directory
Run Code Online (Sandbox Code Playgroud)

bash xargs

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

bash排序异常的顺序.空间问题?

很多时间都进入了一个bug,它追溯到排序......

有人解释为什么我得到这个未排序的结果,当bash文档告诉我分隔符是从白色到非白色字符的转换?第一个字段不应该排序吗?

>sort myfile.txt
10_10000000 19
10_10000001 20
10_10000002 19
10_10000003 17
10_10000004 16
10_1000000 44
10_10000005 16
10_10000006 16
10_10000007 17
10_10000008 16
Run Code Online (Sandbox Code Playgroud)

当然使用+0 -1给了我预期的结果:

>sort +0 -1 myfile.txt
10_1000000 44
10_10000000 19
10_10000001 20
10_10000002 19
10_10000003 17
10_10000004 16
10_10000005 16
10_10000006 16
10_10000007 17
10_10000008 16
Run Code Online (Sandbox Code Playgroud)

一些metainfo:

>type sort
sort is hashed (/bin/sort)
Run Code Online (Sandbox Code Playgroud)

我在用

sort (GNU coreutils) 5.97


>locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

sorting bash

7
推荐指数
2
解决办法
2905
查看次数

matlab以编程方式为数字分配"导出设置" - >"加载设置"

我在"导出设置"对话框中保存了一些图形样式,可在"文件" - >"导出设置"下访问.

有没有办法以编程方式加载我的一个样式?即.我目前需要多次鼠标点击来加载我想要的样式,然后将其应用到图中,然后告诉它导出并为文件命名.我觉得这一切应该可以通过一些命令来实现,但我找不到正确的信息.

matlab

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

bash脚本变量传递查找

我有一个简单的bash脚本,我使用split生成一些临时文件,做一些处理,然后尝试追踪最后的所有文件并合并它们

rand_int=$RANDOM
split -d -l $n_lines_split $1 $rand_int   #works fine

for f in $(find . -amin -200 -regex '.*$rand_int.*' ); do 
    (some processing here) ; 
done
Run Code Online (Sandbox Code Playgroud)

我的问题是在find命令中,$ rand_int按字面解释,而我想使用变量的值.

variables bash find

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

xargs在搜索中尊重通配符

我有一个名为file1.txt的文件:

dir1
dir2
dir3
...
Run Code Online (Sandbox Code Playgroud)

我想使用xargs来检查文件系统中是否存在一些文件,如下所示:

 cat file1.txt | xargs -i ls  /projects/analysis7/{}/meta_bwa/hg19a/*varFilter 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

但是xargs似乎永远不够聪明,无法扩展*.即,即使它们与模式匹配(如果*被扩展),它也永远不会找到文件.

有任何想法吗?

bash xargs

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

ctrl-c 被插入到命令行

我使用的是 Centos 6,bash 版本 4.1.2。

在我的旧 centos 5 盒子中(我不再有它了),我可以通过命令键入部分内容,当我发现我不想运行该命令时,我会按 ctrl-c 取消并获取提示符上的新行。

在我的新安装中,如果我在输入命令时按 ctrl-c,我实际上会在命令取消之前在该行的当前位置插入一个“^C”,并且新的提示行可用。

没什么大不了的,但是如果我回顾我的历史记录,它现在充满了带有“^C”的命令,这是我想避免的,因为我经常使用我的历史记录。

那么,知道如何使用 ctrl-c 取消,但不在行中插入“^C”吗?

bash

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

标签 统计

bash ×5

sorting ×2

xargs ×2

arrays ×1

associative ×1

awk ×1

find ×1

matlab ×1

variables ×1