查找长度为6个字符的单词

时间:2015-09-30 19:49:31

标签: bash parsing text-parsing

我有一个file.txt

fhadja
ksjfskdasd
adasda
sada
s
adasaaa

我只需从那里提取6个字符长度的单词。

我需要获得的结果示例:

fhadja
adasda

谢谢。

5 个答案:

答案 0 :(得分:4)

您可以使用:

grep -E '^.{6}$' file
fhadja
adasda

或者使用awk:

awk 'length($0)==6' file
fhadja
adasda

或使用sed

sed -rn '/^.{6}$/p' file
fhadja
adasda

答案 1 :(得分:3)

尝试使用GNU grep:

grep -E '^.{6}$' file

输出:

fhadja
adasda

答案 2 :(得分:1)

或perl:

perl -ne 'print if 6 == tr/\n//c' file

答案 3 :(得分:1)

只是为了好玩:bash

中的另一个解决方案
while read -r line
do
    if [ ${#line} -eq 6 ]
    then
      echo $line
    fi
done < file.txt

你明白了,

fhadja
adasda

答案 4 :(得分:0)

如果您的文件可以包含空格,请确保您匹配非空白字符:

grep -oE '\<[[:graph:]]{6}\>' << END
 fhadja
   ksjfskdasd
   adasda
   sada s 123456
   s
 2 4 6
END
fhadja
adasda
123456