Bash获得前N个非空格字符

时间:2014-01-23 17:10:40

标签: regex macos bash sed awk

我正在尝试检查文件中的某一行是否被注释掉(//作为该行的第一个非空格字符)。我怎么能用bash做到这一点?只要它是OS X的标准配置,我就可以使用sed,awk等等。

我试过了:

grep textOnlyOnMyLine | cut -c 1-2 myFile.java

但如果空格是该行的前2个字符,则会拾取空格。此命令似乎在输出它找到的内容后挂起。

2 个答案:

答案 0 :(得分:6)

您可以使用grep:

grep '^[[:blank:]]*//' *.java

要搜索特定的行#,您可以使用sed:

sed -n '3s|^[[:blank:]]*//|&|p' file

答案 1 :(得分:3)

使用awk,您可以获得评论行:

awk '/\s*\/\//' file

因此,它会在该行中查找[spaces]//,然后将其打印出来。

如果你想检查一个特定词,你可以这样做:

awk '/\s*\/\// && NR==line_number' file

测试

$ cat a
hello
// this is a coment
 // this is a coment

$ awk '/\s*\/\//' a
// this is a coment
 // this is a coment

$ awk '/\s*\/\// && NR==1' a
$

$ awk '/\s*\/\// && NR==2' a
// this is a coment