Команда удалить все две строки формата - PullRequest
0 голосов
/ 24 мая 2019

Я хочу удалить все вхождения строк (2 строки) в формате ниже в файле.То есть первая строка заканчивается на {, а вторая строка имеет только один символ}.Если этот формат встречается n раз, я хочу удалить эти 2n строк.

anything....{
}

Пример Входной файл:

abc {
a
}
bcd {
}
ecd xyz {
}
pqr {
    stu {
    }
}
xyz {
so
}

Ожидаемый выходной файл:

abc {
a
}
xyz {
so
}

1 Ответ

0 голосов
/ 24 мая 2019

Я сделал это (с помощью сценария оболочки), если это поможет: stack.sh

#!/bin/bash

sed 's#} #}\n#g' source.txt> file.tmp
grep -o '.*{ [a-z]* }' file.tmp | sed 's#{ #{\n#g' | sed 's#}#\n}#g' > result.txt
rm file.tmp

output

[root@localhost stack]# cat source.txt
abc {
a
}
bcd {
}
ecd {
}
xyz {
so
}
[root@localhost stack]# bash stack.sh
[root@localhost stack]# cat result.txt
abc {
a
}
xyz {
so
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...