我试图通过解析greppable文件输出来从nmap扫描中输出grep:
cat $file | grep "22/open" | awk '{print $2}' > $results/service_ssh
这样可行,但是失败的是在最后一个位置带有'22'的任何端口也被添加到文件中,这是错误的(例如8222 / open,8322 / open,1022 / open,...)
我应该使用grep之外的其他东西吗?我还不是正则表达式中最强的,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
试试这个:
grep "^22/open" $file | awk '{print $2}' > $results/service_ssh
^
匹配该行的开头。
或者,如果该行不以“22 / open”开头,您可以使用\b
标记该单词的开头(由@Biffen建议)。
grep "\b22/open" $file | awk '{print $2}' > $results/service_ssh
答案 1 :(得分:2)
使用word boundary(grep '\b22/open' "$file" | awk '{print $2}' > "$results/service_ssh"
):
files: [
...
'bower_components/angular-i18n/angular-locale_en-us.js',
'bower_components/angular-i18n/angular-locale_fr-ca.js',
...
],
有no need to use cat
。引用变量是一个好习惯。