Directory-Structure
通過 shell 腳本在動態目錄中執行命令
我的主目錄是
/home/hts/.hts/tvheadend/input/dvb/networks/1d38df81855dee2d39e692ecc4caf05c/muxes
在其中還有更多具有隨機生成名稱的目錄
例子:
/027941cc4936a3a3515c78487abc5445/ /4ab4097f4089f9e6d3c062a96f027707/ /8224af212d24d291570864021d9107a3/ /bffd49d7d6af0f6405b1dba81df70d89/
在這些文件夾中還有一個文件(名為“config”)和一個子文件夾(名為“services”。在子文件夾“services”中,有一些文件的名稱是隨機生成的。
例子:
/home/hts/.hts/tvheadend/input/dvb/networks/1d38df81855dee2d39e692ecc4caf05c/muxes/027941cc4936a3a3515c78487abc5445/services/02f1f0807a9228c6543425c4f47312e0
我想要一個簡單的腳本,它輸入“muxes”下的每個文件夾,並為每個文件夾輸入子文件夾“services”並替換術語
"enabled": true,
通過
"enabled": false,
在該文件夾的每個文件中。
正如評論中發布的那樣,有很多選擇;
#!/bin/bash find /home/hts/.hts/tvheadend/input/dvb/networks/1d38df81855dee2d39e692ecc4caf05c/muxes -maxdepth 1 -type d | while read ad; do find "$ad/config/services/" -type f -exec sed -i 's/"enabled": true,/"enabled": true,/' '{}' \; done
或者
#!/bin/bash dirarr=($(find /home/hts/.hts/tvheadend/input/dvb/networks/1d38df81855dee2d39e692ecc4caf05c/muxes -maxdepth 1 -type d)) for dir in ${dirarr[@]}; do editfile=$(ls -1 $dir/config/services/) sed -i 's/"enabled": true,/"enabled": false,/' $editfile done