输入:
define { abcd 模式 xyzs wedlenle jqwd sadjkjnd }
define { abcd asjdanja xyzs wedlenle jqwd sadjkjnd }
define { adkja 模式 xyzs wedlenle jqwd sadjkjnd }
预期产出:
define { abcd 模式 xyzs wedlenle jqwd sadjkjnd 的 addtext
}
define { abcd asjdanja xyzs wedlenle jqwd sadjkjnd
}
define { adkja 模式 xyzs wedlenle 的 addtext
}
需要在"}"之前在同一个定义块中添加行(前导空格)。
感谢您的帮助!
答案 0 :(得分:1)
试试这个:
awk '
/pattern/ { f=1 }
/}/ {
if (f) {
sub(/[^[:space:]].*/,"",last)
print last "addtext"
f=0
}
}
{ print }
NF { last = $0 }
' file
define {
abcd **pattern**
xyzs wedlenle
jqwd sadjkjnd
addtext
}
define {
abcd asjdanja
xyzs wedlenle
jqwd sadjkjnd
}
define {
adkja **pattern**
xyzs wedlenle
jqwd sadjkjnd
addtext
}
我不相信你的真实输入文件中存在所有那些尾随空白行,这就是为什么我在这个答案中不费力地处理它们。