シェルスクリプト質問スレ (236レス)
1-

228: 07/21(火)20:09 ID:jNQYpuZQ(1) AAS
今日、初めて、zshの**(再帰検索)を知った。
めっちゃ便利やん。
find使わんでもfindを使ったような一括処理ができる
find . -type f -name "*.webp" -exec bash -c 'for f; do magick mogrify -format jpg "$f" && rm "$f"; done' _ {} +
と今まで書いていたのが
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm "$f"; done
で済む
229: 07/22(水)05:19 ID:XaMozcjW(1) AAS
便利だね

ちなみにAIによると、bashでもver4.0以降なら
shopt -s globstar nullglob # ←これ必要
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm -- "$f"; done
が出来るんじゃないかな
230: 07/22(水)17:45 ID:2vbXf8Gh(1) AAS
bash でも shopt -s globstar 実行したら ** が使えるらしい
ドット開始のファイル/フォルダ名も処理対象にしたいなら shopt -s dotglob も追加
231
(1): 07/23(木)05:36 ID:Nwxr/JU4(1) AAS
ほー、
今までディレクトリ以下のファイル内にgrepするとき
grep keyword *.py
grep keyword */*.py
grep keyword */*/*.py
ってやってたけど
grep keyword **/*.py
で出来るんだ
232: 07/23(木)06:52 ID:S8xk3zuY(1/3) AAS
一つ一つmogrifyするんじゃなくて
見つけた.webを以下のように一気に並列処理するとどうだろうか

(magick mogrify -format jpg "01.web" && rm -- "01.web") &
(magick mogrify -format jpg "02.web" && rm -- "02.web") &
 …
(magick mogrify -format jpg "98.web" && rm -- "98.web") &
(magick mogrify -format jpg "99.web" && rm -- "99.web") &
wait

.webpが多いとハングアップ状態になると思うので
数個単位で分割とかCPU負荷に応じて並列実行数を可変にするとか
233: 07/23(木)06:53 ID:S8xk3zuY(2/3) AAS
> (magick mogrify -format jpg "01.web" && rm -- "01.web") &



(magick mogrify -format jpg "01.webp" && rm -- "01.webp") &

拡張子間違ったw
234
(1): 07/23(木)11:30 ID:H7rg7K1S(1) AAS
繰り返しは for 文か xargs 使おうぜ。
xargs で4並列実行の例:
printf "%s\n" {01..99}.webp | xargs -d $'\n' -n 1 -P 4 bash -c 'magick mogrify -format jpg "$1" && rm -- "$1"' --

# 通常は printf じゃなくて find . -name '*.webp' に差し替えで
235: 07/23(木)11:32 ID:vtHrtAQx(1) AAS
>>231
grep なら伝統的に -r オプションがあるだろ。
と筆が走ったはいいが、自分でほぼ使ったことがないので調べると、4行目のようにするらしい。

1 $ mkdir -p a/b/c/d
2 $ echo 'keyword' | tee a/b/c/d/keyword.py > a/b/c/d/keyword.txt
3 $ cd a
4 $ grep -r --include='*.py' 'keyword'
5 b/c/d/keyword.py:keyword
6 $
236: 07/23(木)13:15 ID:S8xk3zuY(3/3) AAS
>>234
xargsって並列個数指定出来るんだ

GNU parallelも良いかな
外部リンク:thinkit.co.jp
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.547s*