编辑代码



#echo: -e 配合"a b\n"输出控制字符\n换行.echo文末追加一个换行而printf则需要手动换行
echo -e "a b    c\n a b"
#输出:
#a b    c换行
# a b
#xargs:将输入数据转为以单个空格隔开的一行参数,即便输入数据包括换行或者多个空格。
#xargs -n 1:将一个word作为调用一次echo的参数,实现多行多个word转为多行一个word
cat words.txt|xargs #输出一行,:a b c a b换行。

cat words.txt|xargs -n 1 #每行多个以一个或多个空格或制表符隔开的单词的多行文本转为每行一个word的多行文本

#sort:按行来排序。输入数据最好是以单个空格间隔的多个字段,每行的字段数应该相同,即对齐。
#sort还可通过-k num指定比较字段,-rn以数值列作为比较字段并降序。

#uniq的输入数据必须是已排序好的数据,因此前面应该是sort。

#awk:以行为单位且每行按字段(默认是以一个或多个空格作为字段间隔)处理的文本编辑
#awk内使用for循环,有自己的格式:for(i=1;i<=NF;i++){printf "%s\n",$i;}。awk有自己的print命令
#对于printf命令,必须"",而不能''printf则需要手动换行。
#awk '{for(i=1;i<=NF;i++){printf "%s\n",$i;}}',awk必须''而不能""




#
echo -e "a b   c\n a b d b"|xargs -n1|sort|uniq -c|sort -rn|awk '{printf "%s %s\n",$2,$1}'


#|uniq -c||sort -r|awk '{printf "%s %s\n",$2, $1}'