我需要帮助找出一个命令,可以搜索文件并显示包含恰好2个*的行。 有效匹配示例:**、*red*、manche*ste*r 无效匹配示例:*、***、mache*s*te*r 目前我有: grep ‘\*.*\*’ filename.txt 但这个展示的是至少有两个 * 的行,但并不一定是刚好两个。我找不到只匹配刚好两个 * 的方法。
您可以使用 grep '^[^*]*\*[^*]*\*[^*]*$' filename.txt 该正则表达式匹配一个字符串,该字符串恰好包含两个星号,并且在它们之前、之后和之间有任何其他字符。模式细节:- ^ - 字符串的开始 - [^*]* - 0个或多个不是 * 的字符 - \* - 一个 * - [^*]*\*[^*]* - 0个或多个不是 * 的字符,一个 *,再次是0个或多个不是 * 的字符 - $ - 字符串的结束。
grep '^[^*]*\*[^*]*\*[^*]*$' filename.txt
? - Wiktor Stribiżewawk -F'*' 'NF==3' filename.txt
来处理这种情况。 - Sundeep