Bash 查找长度为6个字符的单词
我有一个.txt文件Bash 查找长度为6个字符的单词,bash,parsing,text-parsing,Bash,Parsing,Text Parsing,我有一个.txt文件 fhadja ksjfskdasd adasda sada s adasaaa 我只需要从那里提取长度为6个字符的单词 我需要获得的结果示例: fhadja adasda 谢谢。用GNU grep试试这个: grep -E '^.{6}$' file 输出: fhadja adasda fhadja 阿达斯达 您可以使用: grep -E '^.{6}$' file fhadja adasda 或使用awk: awk 'length($0)==6' file fha
fhadja
ksjfskdasd
adasda
sada
s
adasaaa
我只需要从那里提取长度为6个字符的单词
我需要获得的结果示例:
fhadja
adasda
谢谢。用GNU grep试试这个:
grep -E '^.{6}$' file
输出:
fhadja
adasda
fhadja
阿达斯达
您可以使用:
grep -E '^.{6}$' file
fhadja
adasda
或使用awk:
awk 'length($0)==6' file
fhadja
adasda
或使用sed
:
sed -rn '/^.{6}$/p' file
fhadja
adasda
或perl:
perl -ne 'print if 6 == tr/\n//c' file
如果文件可以包含空格,请确保匹配的是非空字符:
grep -oE '\<[[:graph:]]{6}\>' << END
fhadja
ksjfskdasd
adasda
sada s 123456
s
2 4 6
END
只是为了好玩:
bash中的另一个解决方案
while read -r line
do
if [ ${#line} -eq 6 ]
then
echo $line
fi
done < file.txt
读取时-r行
做
如果[${line}-等式6]
然后
回音$线
fi
完成
你得到
fhadja
adasda
fhadja
阿达斯达
但如果我还需要所有以字母“f”开头,长度为6的单词?非常感谢。然后使用:grep-E'^f.{5}$'文件
fhadja
adasda