sed命令删除包含10个以上字符且不以91开头的行
我希望sed命令删除一行,其中包含10个以上的数字,并且不是以91开头 我的文件内容是这样的sed命令删除包含10个以上字符且不以91开头的行,sed,Sed,我希望sed命令删除一行,其中包含10个以上的数字,并且不是以91开头 我的文件内容是这样的 919876543210 789876543210 9012345678 12345678901 9865746321 需要这样的输出 919876543210 9012345678 9865746321 我试过awk'length>=4'1.txt | grep-v^91 这会告诉我 789876543210 12345678901 您可以做什么: 忽略所有以“91”开头的行,/^91/ 否则
919876543210
789876543210
9012345678
12345678901
9865746321
需要这样的输出
919876543210
9012345678
9865746321
我试过awk'length>=4'1.txt | grep-v^91
这会告诉我
789876543210
12345678901
您可以做什么:
- 忽略所有以“91”开头的行,
/^91/代码>
- 否则,请删除至少包含11个字符的内容
(假设您不关心数字、字母、空格之间的差异…,
{/../d}
sed '/^91/!{/.........../d}'
有了-E
,这将更加优雅
(我的sed是GNU sed版本4.2.1)简单、清晰、便携、高效等,带有awk:
$ awk '/^91/ || length()<11' file
919876543210
9012345678
9865746321
$awk'/^91/| | length()如果您没有显示您尝试过的任何内容,StackOverflow系统建议您将问题向下投票,然后继续。是否可以将-E
用于您的sed版本?sed版本4.2.2如果没有真正回答问题,则sed有不同的来源。