简体   繁体   English

awk用换行符替换字符串

[英]awk replace string with newline

I have never used awk or sed. 我从未使用过awk或sed。 I am trying to replace 我正在尝试更换

aaa
{

with

aaa
{
    bbb

I tried different solutions using sed/awk, but couldn't figure it out. 我使用sed / awk尝试了不同的解决方案,但无法解决。

awk '{gsub("aaa\n{", "aaa\n{\tbbb")}1' file.txt

Could you please help me on how to do it. 你能帮我怎么做吗。

With awk : awk

awk '{print} /^aaa$/{i=NR} /^{$/ && NR==i+1 {print "\tbbb"}' File

Output: 输出:

aaa
{
        bbb
sdjdhsjdhdsd
ds
ddsdsdsd
aaa
{
        bbb

这可能对您有用(GNU sed):

sed '/^aaa$/!b;n;/^{$/a\\tbbb' file

与getline awk

awk '/aaa/ {print;getline} /{/ { print ;print "\tbbb";next}1 ' file

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM