シェルスクリプト質問スレ
2019/04/12(金) 20:22:09.78ID:ga+nyK60
シェルスクリプトに関する質問スレです。
177login:Penguin
2024/08/17(土) 23:16:26.55ID:fdkCYisj178login:Penguin
2024/08/18(日) 00:02:08.32ID:Pwqa8Oqi 昔は眠気に耐えつつデイトレしちゃいかんのか
https://i.imgur.com/Hil0649.jpeg
https://i.imgur.com/Hil0649.jpeg
179login:Penguin
2024/08/18(日) 00:19:21.94ID:5DP/Z/p/ >>87
俺の買値までまだ5ティックある
俺の買値までまだ5ティックある
180login:Penguin
2024/08/18(日) 00:19:42.29ID:5DP/Z/p/ >>173
価値観の乖離が大きくて全部ひっくるめた数字だけじゃなくて感情は全く無くて可愛いとか本来アマ選手に要らないはずなのに球速あんま出ないコントロールタイプだし
トップスの時にセブン行ってない馬鹿が多い
価値観の乖離が大きくて全部ひっくるめた数字だけじゃなくて感情は全く無くて可愛いとか本来アマ選手に要らないはずなのに球速あんま出ないコントロールタイプだし
トップスの時にセブン行ってない馬鹿が多い
181login:Penguin
2024/08/18(日) 00:21:54.95ID:GYc/YbbZ >>30
ガーシー儲って青春時代をまともなゲーム作らなくなるジャンル
ガーシー儲って青春時代をまともなゲーム作らなくなるジャンル
182login:Penguin
2024/08/18(日) 01:36:01.11ID:QEo9ZaF7 いい加減な会社まじで
2024/08/18(日) 01:49:56.27ID:OMLnkwf2
作者: よしながふみの大奥完結して荒してるわ
朝には燃えないとはならんのよ
13日連続日中仕事
朝には燃えないとはならんのよ
13日連続日中仕事
2024/08/18(日) 02:56:46.87ID:m/fQZ/Sm
このスレ潰していいだろ
荒らしでもいいから一気に潰して
荒らしでもいいから一気に潰して
2024/08/19(月) 20:06:29.01ID:U31smRLZ
100 text11:text12:text13
101 text221:text222
105 textxxx:textyyy:textzzz
このような、ID(行の先頭、数字の繰り返し)+空白+コロン区切りの文字列が任意個並んでいる
ファイルがあります
これを
・IDと最初のコロンまで→ID<タブ>textXX<改行>と置換
・それ以降のコロン区切り→<タブ>textXX<改行>textYYと置換
と、タブ文字(\t)と改行(\n\r)で分割する処理をしたいです
例えばIDが100の行は
100<タブ>text11
<タブ>text12
<タブ>text13
としたいです
こんな動作をするスクリプトを紹介いただきたいです
101 text221:text222
105 textxxx:textyyy:textzzz
このような、ID(行の先頭、数字の繰り返し)+空白+コロン区切りの文字列が任意個並んでいる
ファイルがあります
これを
・IDと最初のコロンまで→ID<タブ>textXX<改行>と置換
・それ以降のコロン区切り→<タブ>textXX<改行>textYYと置換
と、タブ文字(\t)と改行(\n\r)で分割する処理をしたいです
例えばIDが100の行は
100<タブ>text11
<タブ>text12
<タブ>text13
としたいです
こんな動作をするスクリプトを紹介いただきたいです
2024/08/20(火) 02:18:16.32ID:nEDCrFKa
宿題は自分でやろうね
187login:Penguin
2024/08/22(木) 00:37:45.05ID:i7Z+NkOw188login:Penguin
2024/08/23(金) 12:53:46.44ID:gCBQWzqI2024/09/14(土) 16:23:29.53ID:+apC+RN0
NGレス番号123-184,188
ところで専ブラのSikiを使っているんだけどさ
--no-sandbox付けないと起動しないんで
いちいちターミナルでポチポチするの面倒だからシェルスクリプト書いてそこから起動させてる
#!/bin/sh
/home/oresama/Siki-0.31.10.AppImage --no-sandbox
sleep 1;
にしてるんだけど
バージョンアップ時に書き換えしないで済むように出来ないかな?
ところで専ブラのSikiを使っているんだけどさ
--no-sandbox付けないと起動しないんで
いちいちターミナルでポチポチするの面倒だからシェルスクリプト書いてそこから起動させてる
#!/bin/sh
/home/oresama/Siki-0.31.10.AppImage --no-sandbox
sleep 1;
にしてるんだけど
バージョンアップ時に書き換えしないで済むように出来ないかな?
2024/09/14(土) 16:33:46.75ID:LtyoCAMa
Sikiのファイル名のバージョン削れ
2024/09/14(土) 18:07:43.42ID:+apC+RN0
>>190
でもそれだとアプデごとに削ることになるから手間暇変わらんのよね
でもそれだとアプデごとに削ることになるから手間暇変わらんのよね
2024/09/14(土) 18:16:32.80ID:4sLzdNTL
単に /home/oresama/Siki-*.AppImage とかでいいんじゃないの
複数あった場合等を考慮するなら最初の1つだけを採用するような細工もいるけど
複数あった場合等を考慮するなら最初の1つだけを採用するような細工もいるけど
2024/09/14(土) 19:27:29.58ID:+apC+RN0
2025/03/14(金) 22:06:45.16ID:yQqaZaMG
#!/bin/bash
export RSYNC_RSH="sudo -u username ssh"
rsync --rsync-path="sudo rsync" -avR --delete ...
上記で実行できるものをこんな風にするとエラーになるのはなぜでしょう?
まだ引用符のエスケープがどこがまずいのかな?
#!/bin/bash
export RSYNC_RSH="sudo -u username ssh"
rsyncopt="--rsync-path=\"sudo rsync\" -avR --delete"
rsync ${rsyncopt} ...
次のようにまとめるのはどうしてもうまくいかずに諦めました。
rsyncopt="-e \"sudo -u username ssh\" --rsync-path=\"sudo rsync\" -avR --delete"
rsync ${rsyncopt} ...
export RSYNC_RSH="sudo -u username ssh"
rsync --rsync-path="sudo rsync" -avR --delete ...
上記で実行できるものをこんな風にするとエラーになるのはなぜでしょう?
まだ引用符のエスケープがどこがまずいのかな?
#!/bin/bash
export RSYNC_RSH="sudo -u username ssh"
rsyncopt="--rsync-path=\"sudo rsync\" -avR --delete"
rsync ${rsyncopt} ...
次のようにまとめるのはどうしてもうまくいかずに諦めました。
rsyncopt="-e \"sudo -u username ssh\" --rsync-path=\"sudo rsync\" -avR --delete"
rsync ${rsyncopt} ...
2025/03/14(金) 22:21:23.61ID:TSxOQOne
$ rsyncopt="--rsync-path=\"sudo rsync\" -avR --delete"
$ for i in ${rsyncopt} ; do echo $i ; done
--rsync-path="sudo
rsync"
-avR
--delete
という風にスペースで切られてる
$ for i in ${rsyncopt} ; do echo $i ; done
--rsync-path="sudo
rsync"
-avR
--delete
という風にスペースで切られてる
196194
2025/03/14(金) 23:51:20.65ID:yQqaZaMG どうもありがとう。
sudo rsyncみたいなのについて調べながらあちこち拾い読みしてて、
少しよく読めばいろいろ中途半端でした。
https://superuser.com/questions/354361/rsync-complaining-about-missing-trailing-in-a-bash-script
sudo rsyncみたいなのについて調べながらあちこち拾い読みしてて、
少しよく読めばいろいろ中途半端でした。
https://superuser.com/questions/354361/rsync-complaining-about-missing-trailing-in-a-bash-script
197login:Penguin
2025/04/15(火) 21:00:01.52ID:fqe9VUsg 300コある連番のファイル名を次のように一気に変更したいです
001.txt → あいうえお.txt
002.txt → かきくけこ.txt
003.txt → さしすせそ.txt
…
300.txt → ほにゃらら.txt
変更後の名前はテキストファイル(name.txt)に入っていて、対応する行番号の文字列のファイル名にしたいです
name.txt
あいうえお
かきくけこ
さしすせそ
…
ほにゃらら
↑ 300行ある
どうしたらいいでしょうか?
001.txt → あいうえお.txt
002.txt → かきくけこ.txt
003.txt → さしすせそ.txt
…
300.txt → ほにゃらら.txt
変更後の名前はテキストファイル(name.txt)に入っていて、対応する行番号の文字列のファイル名にしたいです
name.txt
あいうえお
かきくけこ
さしすせそ
…
ほにゃらら
↑ 300行ある
どうしたらいいでしょうか?
2025/04/15(火) 23:55:33.70ID:sx1QUHxq
forとreadを駆使してやれないこともないが、一回しか使わないのであれば
エディタの機能でname.txtの先頭にmv 行番号.txtを挿入してしまうのが簡単に思う
マルチカーソルか矩形選択のあるエディタなら簡単
エディタの機能でname.txtの先頭にmv 行番号.txtを挿入してしまうのが簡単に思う
マルチカーソルか矩形選択のあるエディタなら簡単
199login:Penguin
2025/04/16(水) 00:40:12.08ID:6F/gZE8F 確かに…冷静に考えたらシェル芸的なこと考えるよりハードコードしたほうが楽でした
ありがとうございます!
ありがとうございます!
2025/04/16(水) 05:45:52.95ID:sOfZDkAa
>>199
一時ファイルを作成していいなら、自分なら
mv 連番.txtが入った一時ファイルとnames.txtをpasteで連結して別の一時ファイルに吐き出して、その一時ファイルを実行するシェルスクリプトを書くかな。
paste <(for t in {001..100}.txt; do echo mv $t; done) names.txt
みたいな感じで
一時ファイルを作成していいなら、自分なら
mv 連番.txtが入った一時ファイルとnames.txtをpasteで連結して別の一時ファイルに吐き出して、その一時ファイルを実行するシェルスクリプトを書くかな。
paste <(for t in {001..100}.txt; do echo mv $t; done) names.txt
みたいな感じで
2025/04/16(水) 10:34:00.18ID:jfx6KBiR
専用使い捨てハードコーディング 良い発想だね
汎用を目指すのも主流の思想だけに 忘れそうになる観点
汎用を目指すのも主流の思想だけに 忘れそうになる観点
2025/04/16(水) 11:03:27.27ID:LdqpgNDU
bashでViモード使ってる時はv押して一時的なVimを開き、Vim内でlsしてファイル名取得して矩形選択で編集して、Vim閉じれば記載内容が実行される感じで使い捨てが楽だった
zshのViモードはVimは開かないからそこはbashが惜しい
zshのViモードはVimは開かないからそこはbashが惜しい
2025/05/01(木) 14:45:58.34ID:z1HjPwT8
>>197
cat -n name.txt | while read n t; do
s=$(printf "%03d.txt" $n)
f="$t.txt"
mv -f "$s" "$f"
done
cat -n name.txt | while read n t; do
s=$(printf "%03d.txt" $n)
f="$t.txt"
mv -f "$s" "$f"
done
2025/05/01(木) 14:55:31.56ID:z1HjPwT8
>>194
eval "rsync ${rsyncopt} ..."
eval "rsync ${rsyncopt} ..."
2025/05/01(木) 15:30:21.53ID:mHbJP3Tq
2025/05/01(木) 15:42:16.40ID:mHbJP3Tq
n=0
while n=$((n + 1)); read t; do
s=$(printf "%03d.txt" $n)
f="$t.txt"
[ -f "$s" ] && [ ! -f "$f" ] && mv -f "$s" "$f"
done < name.txt
デバッグするとこうかな。動かしてないけど
cat ... | while でもいいけど、zsh/kshじゃなきゃパイプでのサブプロセス問題があるから使わない方向にした。これではその問題は発生しない関係ないけど
while n=$((n + 1)); read t; do
s=$(printf "%03d.txt" $n)
f="$t.txt"
[ -f "$s" ] && [ ! -f "$f" ] && mv -f "$s" "$f"
done < name.txt
デバッグするとこうかな。動かしてないけど
cat ... | while でもいいけど、zsh/kshじゃなきゃパイプでのサブプロセス問題があるから使わない方向にした。これではその問題は発生しない関係ないけど
2025/05/01(木) 16:39:16.32ID:z1HjPwT8
>>205
cat -n
cat -n
208login:Penguin
2025/07/06(日) 10:20:20.05ID:mxVBG5kA プログラム技術板のシェルスクリプト総合スレ消えた?
あそこ一番活発で伸びてたスレだったと思うんだけれど
建てて良いかな?
あそこ一番活発で伸びてたスレだったと思うんだけれど
建てて良いかな?
209login:Penguin
2025/07/07(月) 10:36:25.85ID:a7b43M24 falseより[ ]の方が使いでがあるように最近思えてきた
タイプ数も少ないし、見た目でブラケットの中に何もないことから、空(falsy)意味論を理解するのも容易
タイプ数も少ないし、見た目でブラケットの中に何もないことから、空(falsy)意味論を理解するのも容易
210login:Penguin
2025/07/07(月) 10:40:46.91ID:a7b43M24 まあさすがに変数に入れる時はさすがにtrueと対になって対称性のあるfalseを使うけど
avail-p=false
if
avail-p; then
cmd do-smething-not-available
fi
avail-p=true
if avail-p; then
cmd do-smething-available
fi
おれは大体こんな感じでフラグ管理してる
avail-p=false
if
avail-p; then
cmd do-smething-not-available
fi
avail-p=true
if avail-p; then
cmd do-smething-available
fi
おれは大体こんな感じでフラグ管理してる
211login:Penguin
2025/07/07(月) 19:16:50.58ID:lSyk0nlH >>208
プログラム技術板にもあったけど活気があったのはUNIX板の奴だった気が
UNIX系の板自体がもはやかつての活気はないし、今後はAIに質問するのが主流になるだろうから
たてても過疎るだけじゃないかな
プログラム技術板にもあったけど活気があったのはUNIX板の奴だった気が
UNIX系の板自体がもはやかつての活気はないし、今後はAIに質問するのが主流になるだろうから
たてても過疎るだけじゃないかな
212login:Penguin
2025/07/07(月) 19:28:15.68ID:lSyk0nlH >>209
[ ] なんて使ったことなくて、この書き込みで初めて知ったわ
知らずに他人のソース読んでる際にこの表現がでてきたら
「なにか式を書こうとしてそのまま忘れたんだろうなぁ(、何が入るか全くわからん...)」
になるので他人には優しくないかも
[ ] なんて使ったことなくて、この書き込みで初めて知ったわ
知らずに他人のソース読んでる際にこの表現がでてきたら
「なにか式を書こうとしてそのまま忘れたんだろうなぁ(、何が入るか全くわからん...)」
になるので他人には優しくないかも
213login:Penguin
2025/08/27(水) 21:47:15.09ID:36SOHlNb いや、if false;then∼fiなんて、複数行のコメントアウトに使うものw
emacslispの(if nil (progn∼)と同じ
emacslispの(if nil (progn∼)と同じ
214login:Penguin
2025/09/10(水) 14:33:05.43ID:J9+LxTbs2025/09/10(水) 15:00:13.07ID:NIhEJxA7
[ ] だと "]" のパースがはいるのに対してfalseは引数の処理が要らないからfalseのほうがいいんじゃないか(パラノイア
2025/09/10(水) 19:43:28.20ID:tqss3UDy
確かにそうなのか…
でもそれ言っちゃうならif分岐しないで
普通にコメント行でいい気もビレゾン
でもそれ言っちゃうならif分岐しないで
普通にコメント行でいい気もビレゾン
217login:Penguin
2025/10/02(木) 23:22:18.76ID:yBrdr//C >>215
その実行速度差に意味があるなら、どういう使い方をしているのは説明しろよ!
その実行速度差に意味があるなら、どういう使い方をしているのは説明しろよ!
218login:Penguin
2025/10/09(木) 17:30:59.98ID:GRGK1JIK シェルスクリプトの実行速度を気にして可読性を下げた構文にしてもいいが、説明のコメントを書く必要はあるから、趣味以外ではやらない方がいい。
2025/10/10(金) 11:34:27.53ID:BTJmyFDx
linuxじたいの超絶初心者です
apacheのルートディレクトリの変更で手こずってて
何回もapache restartや
condigtesとかやったり
同じようなフォルダに行ったり
config関連のファイルを開いて書き換えたりしてます
何回も同じ文字列を打つのが面倒なのですが
そういうのを解決するのは、シェルスクリプトなんでしょうか?
そんなくらい手で打つほうが楽って上級者ばかりなのでしょうが
自分は、そのつど検索して打ち直したり、ターミナルの履歴たどってやったり
input-remapperというソフトがあったので
テンキーの1を押したら、再起動のコマンド文が入力されるようにしようかと思ったけど
apacheの文字出すだけでも
一文字ごとに+を入れないとダメみたいで、なかなか手間がかかりそうなのでとりあえずやめときました
なにか良いアイデアはあるでしょうか?
apacheのルートディレクトリの変更で手こずってて
何回もapache restartや
condigtesとかやったり
同じようなフォルダに行ったり
config関連のファイルを開いて書き換えたりしてます
何回も同じ文字列を打つのが面倒なのですが
そういうのを解決するのは、シェルスクリプトなんでしょうか?
そんなくらい手で打つほうが楽って上級者ばかりなのでしょうが
自分は、そのつど検索して打ち直したり、ターミナルの履歴たどってやったり
input-remapperというソフトがあったので
テンキーの1を押したら、再起動のコマンド文が入力されるようにしようかと思ったけど
apacheの文字出すだけでも
一文字ごとに+を入れないとダメみたいで、なかなか手間がかかりそうなのでとりあえずやめときました
なにか良いアイデアはあるでしょうか?
2025/10/10(金) 11:35:40.88ID:eylOxkng
221login:Penguin
2025/10/10(金) 12:53:12.54ID:CR56Lou9 エイリアス使え
222login:Penguin
2025/10/10(金) 13:53:53.00ID:nw5JVwKx tab補完
history
があるよ
history
があるよ
2025/10/10(金) 15:34:10.73ID:j6HXVbm2
エイリアス、関数、シェルスクリプト、zsh-autosuggestions
2025/10/11(土) 09:32:27.19ID:C5a7utix
検索してみます
ありがとう
ありがとう
2025/11/29(土) 13:15:00.97ID:RooyRT2w
そもそもシェルスクリプトなんて、ターミナルのコマンドライン上で書いて、再利用できそうなら、適当なテキストファイルに貼っとくもんだw
226login:Penguin
2026/01/28(水) 12:46:13.10ID:12deMOZP いい歳して今更オライリー頼んじゃった><
227login:Penguin
2026/01/29(木) 05:25:59.51ID:osGa1Y0N 今は何でもLLMに質問できるからな……
レスを投稿する
ニュース
- 【サッカーW杯】4-0 日本代表・森保ジャパン、チュニジアに歴史的4発大勝 アジア勢の1次L連敗を「6」で止めた★3 [ゴアマガラ★]
- 【サッカーW杯】4-0 日本代表・森保ジャパン、チュニジアに歴史的4発大勝 アジア勢の1次L連敗を「6」で止めた★4 [ゴアマガラ★]
- コカ・コーラ、日本の食事時飲用は主要40カ国平均の6分の1 唐揚げで食事需要開拓 [煮卵★]
- 【映画】二度と観たくない胸糞映画は? 後味の悪い問題作5選 [muffin★]
- 高市内閣支持、発足以来最低の55% [どどん★]
- 【家事】「家でもやろう」サポーターのゴミ拾いで日本人男性の家事参加率の低さが話題に [ぐれ★]
- 高市早苗って強男との外交でいつもチンポが欲しそうな顔してるよな😰 [929293504]
- 🏡ハイハイチャイナ👏👶ちょちょ夢心地👏👶
- 日本人「え、待って。日本って第二次世界大戦でオランダと戦ったの!?」 [834922174]
- 【悲報】「見て見て!死に物狂いで働いて苦しいローン組んで家建てたぞ!」→みんなに公衆便所みたいと言われてしまうwwwwwwwwwwwww [802034645]
- 【悲報】日本女性、世界的にみても働かないことが視覚化されてしまうwwwwwwwww [589647274]
- ごめん、日本っていつの間にこんなサッカー強くなったの?昔はw杯出場が目標みたいな感じだったよな [535650357]