目标: 将文件中每行内容按照单词反序输出,词之间是按空格区分的,要求转换后词内字符顺序不变,句子顺序不变
例:输入Veve is a cat 输出 cat a is Veve
看到网上很多是C++实现的,其实用awk的话处理还是比较简单的:
awk 'BEGIN{ORS=" "} {for(i=NF; i>0; i--){if(i==NF) print"\n"$i; else print $i}}' input.txt | tail -n +2 > output.txt
正常awk默认每次print的结果都会换行,所以在BEGIN时候就把ORS设置成空格
for循环实现句子按词反序输出
每行句子之间的换行由第一个词前加换行符完成,因为第一行首会多一次换行符,所以最后用tail再处理一下即可