有一个我想从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 inplace
和 s
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