私のホームディレクトリは
/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,
そのフォルダ内のすべてのファイルに。
答え1
コメントに掲載されているように、さまざまなオプションがあります。
#!/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