awk用换行符替换字符串

时间:2016-03-10 05:22:01

标签: shell unix awk sed

我从未使用过awk或sed。我想替换

aaa
{

aaa
{
    bbb

我尝试了使用sed / awk的不同解决方案,但无法弄明白。

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

请你帮我解决一下这个问题。

3 个答案:

答案 0 :(得分:1)

使用awk

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

输出:

aaa
{
        bbb
sdjdhsjdhdsd
ds
ddsdsdsd
aaa
{
        bbb

答案 1 :(得分:0)

这可能适合你(GNU sed):

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

答案 2 :(得分:0)

使用getline awk

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