Chinaunix
标题:
问个列如何变行的问题
[打印本页]
作者:
youcz
时间:
2009-11-11 07:42
标题:
问个列如何变行的问题
cat test
key{
line1
}
key{
line2
line3
line33
line44
}
key{
line4
line5
line6
}
如何才能变成 key{line 4,line 5,line 6}...这样的形式
作者:
ywlscpl
时间:
2009-11-11 07:57
只针对贴出的文本
awk -v RS='key{\n|}\n' -v OFS="," 'NF{$1=$1;print "key{"$0"}"}' file
作者:
youcz
时间:
2009-11-11 08:02
标题:
回复 #2 ywlscpl 的帖子
高,实在是高,
作者:
youcz
时间:
2009-11-11 08:10
标题:
回复 #2 ywlscpl 的帖子
再问下,
awk -v RS='key{\n|}\n' -v OFS="," 'NF{$1=$1;print "key{"$0"}"}' file | egrep line33
key{line2,line3,line33,line44}
怎么写才能转到一开始的形式,谢谢
作者:
wtuter
时间:
2009-11-11 08:42
标题:
回复 #1 youcz 的帖子
[2]cat 1
key{
line1
}
key{
line2
line3
line33
line44
}
key{
line4
line5
line6
}
[2]
[2]
[2]
[2]awk -v RS='key' '{gsub(/\n +/,",");printf "%s%s",t,$0}{t=RS}' 1
key{,line1
}
key{,line2,line3,line33,line44
}
key{,line4,line5,line6
}
作者:
cxfcxf
时间:
2009-11-11 08:47
development:~# echo "key{line2,line3,line33,line44}"|awk -F[{},] '{printf $1"{\n\t";for(i=2;i<=NF-2;i++)printf $i"\n\t";printf $(NF-1)"\n";printf "}\n"}'
key{
line2
line3
line33
line44
}
作者:
blackold
时间:
2009-11-11 08:58
标题:
回复 #4 youcz 的帖子
sed 's/{/&\n/;s/}/\n&/;s/,/\n/g'
作者:
ywlscpl
时间:
2009-11-11 09:00
标题:
回复 #4 youcz 的帖子
echo "key{line2,line3,line33,line44}" | awk -v RS='key{|,|}' 'BEGIN{print "key{"}1;END{print "}"}'
[
本帖最后由 ywlscpl 于 2009-11-11 09:01 编辑
]
作者:
blackold
时间:
2009-11-11 09:15
想起一个小故事。德国生产了一种机器,把生猪从左边推进机器,右边就输出火腿了, 相反,把火腿从右边放进去,左边就会出来一个活猪。
echo 'key{line2,line3,line33,line44}'|sed 's/[{]/&\n/;s/}/\n&/;s/,/\n/g'
key{
line2
line3
line33
line44
}
复制代码
$ echo 'key{line2,line3,line33,line44}'|sed 's/[{]/&\n/;s/}/\n&/;s/,/\n/g'|sed ':n;/key{/N;/}/!bn;s/\n//;s/\n/,/g;s/,}/}/'
key{line2,line3,line33,line44}
复制代码
[
本帖最后由 blackold 于 2009-11-11 09:47 编辑
]
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2