Linux 如何删除不以空格和整数开头的行
我有一个文本文件,我想删除所有不以5、4或3空格和整数值开头的行(包括空行) 到目前为止,我已经手动删除了文本文件的第一部分,然后在我还想删除的行上识别了一些单词,并使用了grep:Linux 如何删除不以空格和整数开头的行,linux,Linux,我有一个文本文件,我想删除所有不以5、4或3空格和整数值开头的行(包括空行) 到目前为止,我已经手动删除了文本文件的第一部分,然后在我还想删除的行上识别了一些单词,并使用了grep: grep -v "iter" out_modif.log > out_modif2.log grep -v "Stabilizing" out_modif2.log > out_modif3.log grep . out_modif3.log > out_modif4.log 等等 我试过了 g
grep -v "iter" out_modif.log > out_modif2.log
grep -v "Stabilizing" out_modif2.log > out_modif3.log
grep . out_modif3.log > out_modif4.log
等等
我试过了
grep -v "^[!0-9]" out.log > out2.log
但不起作用(我想是因为整数前面有空格)
输入文本文件的一部分示例:
Initialize using the hybrid initialization method.
Checking case topology...
-This case has both inlets & outlets
-Pressure information is available at the boundaries
iter scalar-0 scalar-1
1 1.000000e+00 0.000000e+00
2 8.345726e-04 0.000000e+00
iter continuity x-velocity y-velocity z-velocity
1 1.0000e+00 1.6601e-02 7.6482e-03 1.7253e-02
我希望命令的输出是一个仅包含以下内容的文件:
1 1.0000e+00 1.6601e-02 7.6482e-03 1.7253e-02
(包含整数的其他行有制表符而不是空格)我用您的输入调用了我的文件
carles
:
grep -P '^ {3,5}[0-9]+[[:space:]]' carles
1 1.0000e+00 1.6601e-02 7.6482e-03 1.7253e-02
在“iter连续性x-velocity y-velocity z-velocity<代码>”之后打印所有非空行是否也足够?这将很容易使用awk`而不是
grep
。或者在带有数字的行之后或之间是否有其他行被抑制?顺便说一句:你的命令grep。out\u modif3.log>out\u modif4.log
不搜索文字
。使用fgrep。out\u modif3.log>out\u modif4.log
或将
转义为grep'\.'out\u modif3.log>out\u modif4.log
。我意识到我的请求不够精确,因为对于您的代码,我仍然得到一些不需要的线条:468个混合质量流入口面,5区,二进制。59764混合压力入口面,6区,二元。56934三角形压力出口面,8区,二元。1 1.0000e+00 1.6601e-02 7.6482e-03 1.7253e-02 2.9422e-01我已经用下面的grep-P'^{3,5}[0-9]{1,3}[]{2}'out\u test.log>out\u test2.log修改了你的代码,似乎有效!很高兴我能让你开始;)