題目描述
image.png
思路
基于對單列文件排序邓馒,即 sort |uniq -c|sort -nr
绒净,故只需要把空格替換成換行符挂疆,成為單列文件缤言。
空格替換\n
的幾種方式
-
tr
# translate or delete characters
說到替換命令胆萧,第一個想到的就是tr
命令tr -s ' ' '\n'
-
sed
sed
有替換的功能sed 's/old/new/g'
跌穗,所以空格替換為換行命令sed 's? ?\n?g'
或者sed 's?\s?\n?g'
-
printf
# format and print data
格式化打印數(shù)據(jù)蚌吸,printf "%s\n"
逐個單詞換行打印 -
xargs
xargs
分割字符串 -n 1表示每行輸出一個 - for 循環(huán)
for i in `cat words.txt`;do echo $i;done
for循環(huán)是逐個讀單詞的
最后第一列與第二列交互位置羹唠,列處理自然使用 awk
awk '{print $2,$1}'
完整的一行命令答題
1. cat words.txt|tr -s ' ' '\n'|sort |uniq -c|sort -r|awk '{print $2,$1}'
2. cat words.txt|sed 's? ?\n?g' |sort |uniq -c|sort -r|awk '{print $2,$1}'
3. printf "%s\n" `cat words.txt` |sort |uniq -c|sort -r|awk '{print $2,$1}'
4. cat words.txt | xargs -n 1 | sort | uniq -c | sort -nr | awk '{print $2" "$1}'
5. for i in `cat words.txt`;do echo $i ;done | sort |uniq -c | sort -nr |awl '{{print $2" "$1}}'