[英]awk replace serialized number lines and move up other lines
我有一個具有以下格式的文件
1 - descrio #944
name
address
2 - desanother #916
name
address
3 - somedes #957
name
address
我想作為輸出
Usercode #944, name, address
Usercode #916, name, address
Usercode #957, name, address
用awk
awk 'NR%3 == 1{sub(/^.*#/, "Usercode #")};{ORS=NR%3?", ":"\n"};1' file
Usercode #944, name, address
Usercode #916, name, address
Usercode #957, name, address
對於可變數量的行
awk -v RS='(^|\n)[[:digit:]]+[[:blank:]]*-[[:blank:]]*' '{sub(/\n$/, "");
gsub(/\n/, ", "); printf "%s", $0""RT}END{print ""}' file
如果您的任何描述中都沒有#
,請嘗試:
sed -e 's/.*#/Usercode #/;N;N;s/\n/, /g' input
您也可以嘗試使用此命令,
$ paste -d'~' - - - < ccc | sed 's/^[^#]*/Usercode /g;s/~/, /g'
Usercode #944, name, address
Usercode #916, name, address
Usercode #957, name, address
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.