用精确的字符串数提取行

时间:2013-03-08 04:17:47

标签: text-extraction

我想从文本文件中提取包含其中确切字符数的行。我尝试了colrm,但它没有达到我想要的结果并排除非字母数字符号。任何人都可以使用sed这样做吗?我是sed的新手,我现在还在读...感谢任何建议。

2 个答案:

答案 0 :(得分:1)

这是一个运行此文件的测试文件,我调用了文件“test”:

1
11
123
1234
12345
55555
123456
666666

的grep

要仅打印包含5个字符的行,请使用以下

cat test | grep '^.\{5\}$'

结果:

12345
55555

在命令行中,您需要转义大括号

SED

cat test | sed '/^.\{5\}$/!d'

在sed中,它使用与上面相同的正则表达式,但/!d告诉sed NOT不要删除与此匹配的行。结果将与上述两行相同。

AWK

大括号可能会导致某些版本的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`
相关问题