我想从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"的任何行的末尾。 " $ HERE /铬" " $ @" 字符串
--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和awk,但想要做到这一点。
答案 0 :(得分:1)
尝试使用GNU sed编辑文件:
sed -i '5s/$/& --user-data-dir/' file
答案 1 :(得分:1)
不幸的是,您需要使用正则表达式而不是字符串比较,因为您的空白区域可能明显不同,因此引入了一些逃避复杂性。使用GNU awk获取-i inplace
和\s
的{{1}}简写:
[[:space:]]
答案 2 :(得分:0)
使用awk你可以做到:
awk 'NR==5{$0=$0" --user-data-dir"}1' file > newfile