我有一个文件:
line1
line2
line3
我想拥有的是
"line1"{
"line1"
}
我正在尝试使用awk来执行此操作,但是我不知道如何使用特殊字符。现在我有了这个。
awk '{ "$0" {"$0"} }'
答案 0 :(得分:2)
$ awk -v q='"' '{ql = q $0 q; print ql "{" ORS ql ORS "}" }' ip.txt
"line1"{
"line1"
}
"line2"{
"line2"
}
"line3"{
"line3"
}
-v q='"'
将双引号字符保存在名为q
的变量中,从而更容易插入双引号而不是使转义变得混乱ql = q $0 q
会在输入记录周围添加双引号ql "{" ORS ql ORS "}"
必需的输出,ORS
是输出记录分隔符,默认情况下为换行符
" }"
在输出中的}
之前留一个空格答案 1 :(得分:2)
与sed
$ sed 's/.*/"&"{\n"&"\n}/' file
"line1"{
"line1"
}
"line2"{
"line2"
}
"line3"{
"line3"
}
另一个awk
$ awk -v OFS="\n" -v q='"' '{v=q $0 q; print v "{", v, "}" }' file
答案 2 :(得分:2)
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromSeconds(30);
options.Cookie.SameSite = SameSiteMode.None;
});
答案 3 :(得分:1)
您可以简单地使用printf
:
awk -v fmt='"%s"{\n"%s"\n}\n' '{printf fmt, $0,$0 }' file
使用您的数据进行测试:
kent$ awk -v fmt='"%s"{\n"%s"\n}\n' '{printf fmt, $0,$0 }' f
"line1"{
"line1"
}
"line2"{
"line2"
}
"line3"{
"line3"
}