标题已经说过了:
我想使用一些linux one liner (例如sed)
转型
Anytext
{转到
Anytext{这可以使用sed来完成吗?如果不能使用sed,那么可以使用awk one liner来完成。
发布于 2012-08-26 19:53:45
好的,
sed 'N;s/\n{/{/'或者更全面的版本:
sed ':r;$!{N;br};s/\n{/{/g'这里,:r设置了一个标签,我们可以参考它来创建一个循环;
$!{...}为除了最后一行之外的每一行执行给定的命令集;
N;br是get在循环中执行的两个命令:N将新行附加到模式空间,br分支回到标签r,完成循环。
然后,当您运行最后一个命令时,您的所有文件都在模式空间中:
s/\n{/{/g如果您在下面这样的东西上尝试,就可以看到这两种方法之间的区别
Anytext
{
{
{发布于 2012-08-26 20:02:13
使用sed的一种方式
sed -ne '$! N; /^.*\n{/ { s/\n//; p; b }; $ { p; q }; P; D' infile一个测试。假设infile包含content:
one
Anytext
{
two
three
{
four
five
{输出将为:
one
Anytext{
two
three{
four
five{发布于 2012-08-26 20:07:59
如果要从\n{序列中删除换行符,bbe似乎是最简单的工具:
bbe -e 's/\n{/{/' infilehttps://stackoverflow.com/questions/12129870
复制相似问题