页次: 1
比如一段文本格式不是一行一行而是这个样子(这段文字空行前是没有空格的!!!)
1->id编号值 姓名->张三 网站->www.ipbbs.net 3->id编号值 姓名->李四 网站->www.ipbbs.net 2->id编号值 姓名->王五 网站->www.ipbbs.net
如果对这样的文字排序, 就不能直接用 sort 而是应该先用awk进行处理
# cat a.txt | awk -v RS="" '{gsub("\n", "#");print}' 1->id编号值#姓名->张三#网站->www.ipbbs.net 3->id编号值#姓名->李四#网站->www.ipbbs.net 2->id编号值#姓名->王五#网站->www.ipbbs.net
这是第一次的处理,处理的结果是这样。 处理成可以用cut处理的形式
完整的命令
cat a.txt | awk -v RS="" '{gsub("\n", "#");print}' | sort -k 1 | awk -v ORS="\n\n" '{gsub("#", "\n"); print }' 1->id编号值 姓名->张三 网站->www.ipbbs.net 2->id编号值 姓名->王五 网站->www.ipbbs.net 3->id编号值 姓名->李四 网站->www.ipbbs.net
awk 参数说明
-v : 设置变量
RS: 这个变量再 awk 表示 记录的分割符号
ORS:这个变量表示输出当前记录的分隔符
gsub : 替换
ipbbs.net
离线
页次: 1