这可能很容易,现在没有点击我和我缺乏咖啡。 我有一个文件,多行的选项卡开始,然后单词GROUP something {
在某些情况下,无论出于何种原因,这些线条中的某些线条会掉落大括号 快速解决方法是使用sed / awk将大括号附加到该行,但不包括括号已经存在的行。 我已经半途而废了,但是正如你所看到的,这会将开放的大括号附加到以tab和GROUP开始的每一行。
sed '/[ \t]GROUP/ s/$/ {/' scst.conf.test > greg.scst.out
你可以试试这个sed
命令:
$ sed '/[ \t]GROUP/ s/{*$/ {/' scst.conf.test > greg.scst.out
检查GROUP something
没有{
和回引用它,然后用\1 {
replace。
sed 's|\([ \t]GROUP.*\)[^{]$|\1 {|' yourfile
将以下testing文件作为test.txt
:
GROUP blah { GROUP blah { GROUP blah GROUP blah { GROUP blah { GROUP blah { GROUP blah GROUP blah { GROUP blah { GROUP blah { GROUP blah {
以下sed脚本来完成业务:
sed -r 's/\tGROUP(.*)[^{]$/&{/' test.txt
输出看起来像这样:
GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah { GROUP blah {
那是对的吗? 它所做的是查找具有tab-> GROUP任意字符但最后没有{}的行。 用匹配的行replace它(这就是&所做的),然后附加一个{之后。