Linux

如何在目前文件夾中的所有腳本的行前添加單詞

  • December 2, 2018

在 /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. (注意,您需要轉義,&否則它們具有特殊含義。

引用自:https://unix.stackexchange.com/questions/485448