我试图编写一个正则表达式(e)grep
命令,它将打印txt文件中的所有行,但忽略以空格开头的那些行(手动缩进文件)。我一直未能弄清楚如何使用^
的开始和排除^
在一起。谢谢!从egrep打印输出中排除以空格开头的行
1
A
回答
2
一个好方法是用negated character class。
就像[abc]
将匹配a
,b
,或c
,[^abc]
将匹配不a
,b
,或c
任何字符。 ^
将正则表达式定位在行的开始位置,所以它后面必须匹配字符串的第一个字符。
$ cat test
does not start with space
starts with space
starts with more spaces
another good line
$ egrep '^[^ ]' test
does not start with space
another good line
如果我们想跳过开头的行空白,包括标签,你可以使用字符类中的特殊[:space:]
括号表达式:
egrep '^[^[:space:]]' test
如果你是不是在找其他的东西行,你也可以使用倒匹配:
-v, --invert-match
Selected lines are those not matching any of the specified pat-
terns.
因此,我们可以这样做,而不是:
egrep -v '^[[:space:]]' test
grep
应该这样做太:
grep -v '^[[:space:]]' test
1
可以使用-v
开关跳过匹配的行。
egrep -v '^ '
见man egrep
相关问题
- 1. 打印出以两个不同的字符串输出开头的行吗?
- 2. 从文本文件开头的行中删除空格
- 3. 以HTML格式打印Python输出
- 4. 打印出可以除以
- 5. 从textarea的输出中删除空行
- 6. perl打印表格输出
- 7. 以行格式打印输出的命令
- 8. 从pytest打印头打印
- 9. egrep动态输出
- 10. 删除字符串开头的空格
- 11. 更改打印输出行
- 12. 如何打印输出从
- 13. 从SchemaSpy输出打印ERD
- 14. 打印从subprocess.Popen输出
- 15. java - 在输出中打印特殊字符和空格
- 16. 为什么在我的Perl脚本中输出空白行打印输出
- 17. 插入排序打印输出错误
- 18. 以java格式打印行
- 19. 删除行以“;”开头
- 20. 输出打印
- 21. 打印输出
- 22. 打印输出
- 23. “vagrant up”打印以“==>默认值”开头的数百行:
- 24. 在PyParsing中,如何忽略可能以空格开头的行?
- 25. 针对以空格开头的类值
- 26. 用新的打印输出取代以前的打印输出或将字符添加到以前的输出
- 27. 从diff输出中排除已删除的行
- 28. 从C#DLL打开控制台并使用它打印输出
- 29. 打印用空格
- 30. 为什么打印输出不为空?