192. Word Frequency※
题目连接:Word Frequency
题目描述※
统计文件中各个单词出现的次数
解题思路※
只想到awk(awk几乎可以做任何事情...)
awk '{for(i=1; i<=NF; i++) r[$i] ++;}END{for (key in r){print key " " r[key];}}' words.txt | sort -k2nr
另外,看到这篇博客里的另一种思路
cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -rn | awk '{print $2" "$1}'
193. Valid Phone Numbers※
题目连接:Valid Phone Numbers
题目描述※
验证文件中每行是否是一个合法的电话号码
解题思路※
很简单,用正则规则先验证即可
egrep '^(\([0-9]{3}\)\ [0-9]{3}|[0-9]{3}-[0-9]{3})-[0-9]{4}$' file.txt
194. Transpose File※
题目连接:Transpose File
题目描述※
相当于文件的转置
解题思路※
思路很简单,主要是看对于常用工具的使用
awk '{for(i=1; i<=NF; i++) {r[i] = r[i] " " $i;}} END{ for(i=1; i<=NF; i++) print substr(r[i], 2)}' file.txt'>)}>)}'
195. Tenth Line※
题目连接:Tenth Line
题目描述※
打印文件的第10行内容
解题思路※
第一次提交的时候没有注意如果文本行数没有10行的时候不输出,想了好久都没有想出来,最后还是参考别人的解法,发现还是对Linux下的工具用的太少,好多功能不知道。解法有
# awk
awk 'NR == 10' file.txt
# sed
sed -n '10p' file.txt
# tail + head
tail -n+10 file.txt | head -n 1