删除所有行,其中(length< = 10 AND digitsOnly)OR(长度< = 8 AND lowerCaseLetters only)

时间:2017-05-07 18:45:00

标签: bash sed grep

我想知道一个bash命令,它从文件中删除以下其中一项为真的所有行: - 只有数字AND等于或短于10个字符 - 只有小写字母(a-z,没有特殊的字母,如变音符号)和等于或短于8个字符

我发现sed是正确的工具,但我无法在一起获得正确的语法。

1 个答案:

答案 0 :(得分:0)

使用grep

grep -vE '^[[:digit]]{1,10}$|^[[:lower:]]{1,8}$' file

sed具有相同的正则表达式:

sed -E '/^[[:digit:]]{1,10}$/d;/^[[:lower:]]{1,8}$/d' file