【Shell案例】【wc记录单词长度、for循环和if、awk文本分析工具】7、打印字母数小于8的单词
描述
写一个 bash脚本以统计一个文本文件 nowcoder.txt中字母数小于8的单词。
示例:
假设 nowcoder.txt 内容如下:
how they are implemented and applied in computer
你的脚本应当输出:
how
they
are
and
applied
in
说明:
不要担心你输出的空格以及换行的问题
方法1:for循环和if
$内执行语句&-lt表示小于&单括号if条件
#!/bin/bash
for i in `cat nowcoder.txt`
do
if [ $(echo $i | wc -m) -lt 9 ]; then
echo $i
fi
done
``同{}
#!/bin/bash
for i in $(cat nowcoder.txt)
do
if [[ ${#i} -lt 8 ]]; then
echo -e "$i"
fi
done
[[]]同()
#!/bin/bash
for i in $(cat nowcoder.txt)
do
if (($(echo $i | wc -L)<8)); then
echo -e "$i"
fi
done
方法2:awk -F "分隔符" ‘{}’ 文件名【文本分析工具】
使用awk文本分析工具-F分隔符
#!/bin/bash
awk -F " " '{for(i=1;i<=NF;i++){
if(length($i)<8) {
print $i
}
}}' nowcoder.txt
#-F表示-F fs or --field-separator fs
#指定输入文件分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/16214590.html

浙公网安备 33010602011771号