我想从文本文件中提取包含其中确切字符数的行。我尝试了colrm,但它没有达到我想要的结果并排除非字母数字符号。任何人都可以使用sed这样做吗?我是sed的新手,我现在还在读...感谢任何建议。
答案 0 :(得分:1)
这是一个运行此文件的测试文件,我调用了文件“test”:
1
11
123
1234
12345
55555
123456
666666
要仅打印包含5个字符的行,请使用以下
cat test | grep '^.\{5\}$'
结果:
12345
55555
在命令行中,您需要转义大括号
cat test | sed '/^.\{5\}$/!d'
在sed中,它使用与上面相同的正则表达式,但/!d
告诉sed NOT不要删除与此匹配的行。结果将与上述两行相同。
大括号可能会导致某些版本的awk出现问题,并且可能需要不可用的特殊标志。这是使用awk
执行此操作的一种基本方法cat test | awk '{ if (length($0) == 5 ) print $0}'
答案 1 :(得分:0)
grep '^.{25}$'
只返回25个字符的行。
说明:
^ Start at beginning of string
.{25} match exactly 25 of any character
$ Up to the end of the string`