Sed解释器脚本 - 到位

时间:2014-12-20 11:14:57

标签: sed

是否可以“就地”(-i)运行sed解释器脚本?

#!/usr/bin/sed -if
#sed commands...

这给了我以下错误:

/usr/bin/sed: -e expression #1, char 7: unknown command: `f'

我试图搜索它,但我发现只有#!/usr/bin/sed -nf(出于某种原因可以正常工作)。

顺便说一句:我知道我可以运行bash脚本和sed -i命令,但感觉不对:D

编辑:

我只是更正了一些JSON配置文件。使用python JSON解析器删除所有格式和注释(!),这对我不起作用。我已尝试过sed -i -f sed -f -i等所有可能的组合。

编辑:

对于那些不信的人:这是整个剧本。希望你喜欢它:D

#!/usr/bin/sed -if 

# Tabs - change height
/\/\/ Tab set/,/\}\,/ {
    s/"tab_width": .*,/"tab_width": 50,/;
    s/"tab_height": .*,/"tab_height": 27,/;
}

# VScroll bar
/\/\/ Overlay vertical puck/,/\}\,/ {

# Width
s/"content_margin": .*/"content_margin": [3,38],/
# Color
/content_margin/ {
    a\
    "layer0.tint":[173,216,230],
    a\
    "layer0.opacity": 0.2,
    }
}

# HScroll bar - width
/\/\/ Overlay horizontal puck/,/\}\,/ {
    s/"content_margin": .*/"content_margin": [16,3],/
}

# Status bar - height
/\/\/ Status bar container/,/\}\,/ {
    s/"content_margin": .*/"content_margin": [15, 4]/
}

# Side bar - rows
/\/\/ Sidebar tree || entries/,/\}\,/ {
    s/"row_padding": .*/"row_padding": [8,5],/
    s/"indent_offset": .*/"indent_offset": 10,/
}

# Side bar - folder icon
/\/\/ Sidebar folder opened/,/\}\,/ {
s/"layer0.texture": "Seti_UI\/icons\/folder_open@2x.png",/"layer0.texture":          "Seti_UI\/icons\/folder@2x.png",/
}

1 个答案:

答案 0 :(得分:2)

根据this answer on unix.stackexchange,这不起作用,因为#!行上不能(可移植地)使用多个参数。答案是可接受的(至少对我而言)解决方法。