我需要对bed
文件随机排序10000 次,每次取前 1000 行。目前,我正在使用以下代码:
for i in {1..100}; do
for j in {1..100}; do
sort -R myfile.bed_sorted | tail -n 1000 > myfile.bed.$i.$j.bed
done
done
Run Code Online (Sandbox Code Playgroud)
为每个文件执行此操作需要将近 6 个小时。我有大约 150 个需要解决。有没有更快的解决方案?
我有一个数据样本(myfile.bed_sorted):
chr1 111763899 111766405 peak1424 1000 . 3224.030 -1 -1
chr1 144533459 144534584 peak1537 998 . 3219.260 -1 -1
chr8 42149384 42151246 peak30658 998 . 3217.620 -1 -1
chr2 70369299 70370655 peak16886 996 . 3211.600 -1 -1
chr8 11348914 11352994 peak30334 990 . 3194.180 -1 -1
chr21 26828820 …
Run Code Online (Sandbox Code Playgroud) 我有一个包含大约 150 个文本文件的文件夹。我想以 150 个文件的名称创建文件夹。之后,我希望将文本文件移动到其各自的文件夹中。
myfolder 目录中文件的示例名称:
~/myfolder/
|______ ajhaslf.txt
|______ oiueed.txt
|______ dsflije.txt
Run Code Online (Sandbox Code Playgroud)
我希望我的新结构如何:
~/myfolder/
|______ ajhaslf
|____ajhaslf.txt
|______ oiueed
|____oiueed.txt
|______ dsflije
|____dsflije.txt
Run Code Online (Sandbox Code Playgroud)
当然,使用文件名创建目录对我来说不是问题mkdir
。
我想合并包含不同行数但列数相同的两个 txt 文件中的特定列(如下所示):
file1:
xyz desc1 12
uvw desc2 55
pqr desc3 12
file2:
xyz desc1 56
uvw desc2 88
Preferred output:
xyz desc1 12 56
uvw desc2 55 88
pqr desc3 12 0
Run Code Online (Sandbox Code Playgroud)
目前我使用 awk 作为粘贴命令:
paste <(awk '{print $1}' file1) <(awk '{print $2}' file1) <(awk '{print $3}' file1) <(awk '{print $3}' file2)
Run Code Online (Sandbox Code Playgroud)
但这似乎只合并重叠的列。awk 中有没有办法插入零而不是省略行本身?
我需要将 100 个文件组合在一起,这样我的输出文件将包含 102 列。
我有一个包含 61000 列和 173 行的文本文件。我想合并每 2 列的数据,即第 1 列和第 2 列应该合并,第 3 列和第 4 列应该合并,第 5 列和第 6 列应该合并,依此类推。
示例输入(制表符分隔):
Ind Pop scaffold1 X scaffold1 X.1 scaffold3 X.2 scaffold4 X.3
a antartica 1 1 1 1 2 2 1 1
b antartica 1 1 1 1 2 1 1 2
c antartica 1 1 1 1 2 1 1 1
d antartica 1 1 1 1 2 1 1 2
e antartica 1 1 1 1 2 1 1 2 …
Run Code Online (Sandbox Code Playgroud)