Linux
如何在目前文件夾中的所有腳本的行前添加單詞
在 /home/script 下,我們有 187 個 bash 腳本,所有腳本都有以下行:
kill -PIPE $PID
我們想在所有腳本的這一行之前添加以下單詞,如下所示
[[ $KILL_STATUS = YES ]] && kill -PIPE $PID
這樣做的原因是避免編輯每個腳本,並使用 Linux 命令作為 sed 一次性完成所有腳本,
$ for i in /home/scrript/*; do sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i"; done
解釋
for i in /home/scrript/*; do FOO; done
: 對 . 中的所有文件重複/home/scrript
。注意,根據您的 shell 配置,這可能會跳過點文件。sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i"
: 對於每個文件 ("$i"
),替換“就地” (sed -i
),替換kill -PIPE $PID
為[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID
. (注意,您需要轉義,&
否則它們具有特殊含義。