SED或尴尬以附加到特定线路



有一个我想从bash脚本编辑的文件

if [[ -n "$CHROME_USER_DATA_DIR" ]]; then
  exec -a "$0" "$HERE/chrome"  
    --user-data-dir="$CHROME_USER_DATA_DIR" "$@"
else
  exec -a "$0" "$HERE/chrome"  "$@"
fi

我想附加到包含 exec -a" $ 0"的任何行的末端

  --user-data-dir

结果将与

一起编写现有文件

    if [[ -n "$CHROME_USER_DATA_DIR" ]]; then
      exec -a "$0" "$HERE/chrome"  
        --user-data-dir="$CHROME_USER_DATA_DIR" "$@"
    else
      exec -a "$0" "$HERE/chrome"  "$@" --user-data-dir
    fi

我很难理解sed and Awk,但想做这项工作。

不幸的是,您需要使用REGEXP而不是字符串比较,因为您的空白显然可能会有所不同,因此引入了一些逃避的复杂性。将gnu awk用于 -i inplaces shorthand for [[:space:]]

awk -i inplace '/execs+-as+"$0"s+"$HERE/chrome"s+"$@"/{$0=$0 " --user-data-dir"} 1' file

尝试使用GNU sed编辑文件:

sed -i '5s/$/& --user-data-dir/' file

有尴尬的您可以做:

awk 'NR==5{$0=$0" --user-data-dir"}1' file > newfile

相关内容

  • 没有找到相关文章

最新更新