Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在命令行中编辑文本文件并创建新文件_Bash - Fatal编程技术网

Bash 在命令行中编辑文本文件并创建新文件

Bash 在命令行中编辑文本文件并创建新文件,bash,Bash,我有一个大文件,如示例所示: chr1:16872433-16872504 54 112622 chr1:16872433-16872504 55 112110 chr1:16872433-16872504 56 110996 chr1:16872433-16872504 57 110306 chr1:16861773-16861845 20 38808 chr1:16861773-16861845 21 39768 chr1:16861773-16861845 22

我有一个大文件,如示例所示:

chr1:16872433-16872504  54  112622
chr1:16872433-16872504  55  112110
chr1:16872433-16872504  56  110996
chr1:16872433-16872504  57  110306
chr1:16861773-16861845  20  38808
chr1:16861773-16861845  21  39768
chr1:16861773-16861845  22  40344
chr1:16861773-16861845  23  40637
chr1:16861773-16861845  24  41311
chr2:7990338-7990408    8   0
chr2:7990338-7990408    9   0
chr2:7990338-7990408    10  0
chr2:7990338-7990408    11  0
chr2:7990338-7990408    12  0
我想提取以“
chr1:16872433-16872504
”开头的每个部分,并创建一个新的
.txt
文件。 我怎么能在bash中做到这一点?我尝试了
grep
命令,但不知道如何使其有条件

grep -E 'chr1:16872433-16872504' your.txt  > new.txt
提供以下输出

chr1:16872433-16872504  54  112622

chr1:16872433-16872504  55  112110

chr1:16872433-16872504  56  110996

chr1:16872433-16872504  57  110306

根据您的要求[“chr1:16872433-16872504”]

无需使用cat,并使用正则表达式向解决方案中添加“下注和大括号”,检查文本是否位于行的开头。grep-E'$chr1:16872433-16872504'your.txt>new.txtI尝试了1-grep-E'chr1:16872433-16872504'your.txt>new.txt和2-grep-E'$chr1:16872433-16872504'your.txt>new.txt,但new.txt为空在插入new.txt之前,请使用grep-E'chr1:16872433-16872504'your.txt