例如,我有这个文本文件:
use
user_99
12345
Run Code Online (Sandbox Code Playgroud)
+10k 行...
我想从命令行中删除那些少于 4 个字符的字符,我已经在 google 中搜索过但没有结果。
有任何想法吗?:)
我还想删除开头超过 3 个数字的行。
您可以创建至少 4 个字符的 GNU sed 正则表达式.{4,}- 然后删除除至少 4 个字符以外的所有行:
sed -r '/.{4,}/!d' file
Run Code Online (Sandbox Code Playgroud)
同样,以超过 3 个连续数字开头的行将^[0-9]{4,}删除所有这些
sed -r '/^[0-9]{4,}/d' file
Run Code Online (Sandbox Code Playgroud)
您可以使用-e或组合它们;
sed -r -e '/.{4,}/!d' -e '/^[0-9]{4,}/d' file
Run Code Online (Sandbox Code Playgroud)
或者
sed -r '/.{4,}/!d ; /^[0-9]{4,}/d' file
Run Code Online (Sandbox Code Playgroud)
请注意,.匹配空格字符和非空格字符 - 如果这不是您想要的,那么您可以通过替换.为字符范围或 POSIX 类(例如[[:alnum:]].