【发布时间】:2013-02-25 07:55:10
【问题描述】:
我想打印文件的内容,但我想忽略所有以 # 开头的行。我用 grep 和 awk 尝试了一些东西,但它一直在打印整个文件,或者只是打印以 # 开头的行。你可以用正确的方式给我推送,或者使用 grep/awk 命令打印文件中不以 # 开头的任何行。
【问题讨论】:
-
grep -v "^#" file.txt
我想打印文件的内容,但我想忽略所有以 # 开头的行。我用 grep 和 awk 尝试了一些东西,但它一直在打印整个文件,或者只是打印以 # 开头的行。你可以用正确的方式给我推送,或者使用 grep/awk 命令打印文件中不以 # 开头的任何行。
【问题讨论】:
grep -v "^#" file.txt
使用grep 的-v 选项来否定条件:
grep -v '^#' file
【讨论】:
#之前的行首有前导空格怎么办?
'^[[:space:]]*#'
您可以使用! 运算符:
awk '!/^ *#/ { print; }'
这否定了匹配的结果。我还包括了以空格和 # 开头的行,但您可以根据自己的喜好定制正则表达式。
【讨论】:
您可以使用 grep 使用 -v 选项排除所有以 # 开头的行
grep -v '^#' filename
如果你是sed的粉丝:
sed '/^#/d' filename
【讨论】:
.* 部分。
这也会在# 之前省略带有空格的行:
awk '$1!~/^#/' file
或
grep -v '^[[:blank:]]*#' file
【讨论】:
这里是grep PCRE方式,
grep -P '^(?!#)' file
【讨论】: