这可能很简单,但我现在没有意识到,而且咖啡也喝不上。我有一个文件,里面有多行以制表符开头,然后是单词 GROUP something {
某些行出于某种原因,在某些情况下会删除花括号。快速修复方法是使用 sed/awk 将花括号附加到该行,但不附加到已经存在花括号的行。我已经完成了一半,但正如您所见,这会将左花括号附加到以制表符和 GROUP 开头的每一行。
sed '/[ \t]GROUP/ s/$/ {/' scst.conf.test > greg.scst.out
答案1
你可以尝试这个sed
命令:
$ sed '/[ \t]GROUP/ s/{*$/ {/' scst.conf.test > greg.scst.out
答案2
检查GROUP something
是否有{
,然后反向引用它,然后用替换\1 {
。
sed 's|\([ \t]GROUP.*\)[^{]$|\1 {|' yourfile
答案3
使用以下测试文件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 任何字符但末尾没有 { 的行。用匹配的行替换它(这就是 & 的作用)并在后面附加一个 {。