[shell]
Bash等の覚え書き
sed
複数行を単一行化
これは色んな人が考えるけどオプションがわからないために諦めるやつだと思う
- sed メモ(第二版)- 改行をすべて削除したい
- ここに従う
- 最終行に達するまで N コマンドでひたすら入力をパターン・スペースに詰め込んでいき、最後に g オプションつきの置換コマンドで一気に改行を削除するオプション。
:a $! { N; ba } s/\n//g
やってみる
$ cat test.txt 1,first 2,second 3,third 4,fourth 5,fifth $ sed ':a;N;$!ba;s/\n//g' test.txt 1,first2,second3,third4,fourth5,fifth
これは応用が効きそうだ
インクルード
source ./shell.sh
日付の読み込み
${someday}で読み込んだ日付に一日プラス
date '+%Y-%m-%d' -d "${someday} + 1 day"
xargs
ファイル名をリストしてそこから拡張子を抜く
- .nasファイルをリストする場合
$ find . -name \*.nas -print | xargs -n 1 -I @ sh -c 'echo `basename "@" .nas`'
findで見つけたファイルのディレクトリにcd
$ cd "$(find /media/storage -name "Fedora" -printf '%h' -quit)"
exiftool
exiftoolの結果をjqでパース
$ exiftool 'LoRA Modeler Efficiency ComfyUI_00741_.png' | grep Prompt | awk -F' : ' '{print $2}' | jq