![grep 查找包含长度大于 x 个字符的字符串的文件?](https://linux22.com/image/504574/grep%20%E6%9F%A5%E6%89%BE%E5%8C%85%E5%90%AB%E9%95%BF%E5%BA%A6%E5%A4%A7%E4%BA%8E%20x%20%E4%B8%AA%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
是否可以在目录中找到长度超过 x 的字符串(没有空格)的文件?
答案1
我认为自己是一个正则表达式新手,但是我创建了一堆包含可变长度字符串的文件,并且我想我得到了你想要的东西,请尝试这个:
user@host$ grep -e '[^\ ]\{7,\}' *
对于那些不太理解这一点的人来说:
-e
使用正则表达式进行 grep 搜索。 [^\ ]
表示匹配除空格之外的单个字符。 \{7,\}
表示匹配 7 个或更多字符的字符串。如果您在后面加上另一个数字,则它将是 7 到 x 个字符之间的字符串。
答案2
我无法让上面的示例工作。我正在搜索 CSV 文件中长度超过 10000 个字符的行。我折腾了好一会儿才得到这个... 查找长度超过 9999 个字符的行...
grep -a -e '[^\ ]\{9999,\}' *.csv >../my-file.csv
这正是我真正需要的。CSV 文件中的行少于 10000 个字符。查找少于 9999 个字符的行
grep -a -v -e '[^\ ]\{9999,\}' *.csv >../my-file.csv