シェルスクリプト質問スレ (213レス)
上下前次1-新
1: 2019/04/12(金)20:22 ID:ga+nyK60(1) AAS
シェルスクリプトに関する質問スレです。
184: 2024/08/18(日)02:56 ID:m/fQZ/Sm(1) AAS
このスレ潰していいだろ
荒らしでもいいから一気に潰して
185(1): 2024/08/19(月)20:06 ID:U31smRLZ(1) AAS
100 text11:text12:text13
101 text221:text222
105 textxxx:textyyy:textzzz
このような、ID(行の先頭、数字の繰り返し)+空白+コロン区切りの文字列が任意個並んでいる
ファイルがあります
これを
・IDと最初のコロンまで→ID<タブ>textXX<改行>と置換
・それ以降のコロン区切り→<タブ>textXX<改行>textYYと置換
と、タブ文字(\t)と改行(\n\r)で分割する処理をしたいです
例えばIDが100の行は
省5
186: 2024/08/20(火)02:18 ID:nEDCrFKa(1) AAS
宿題は自分でやろうね
187: 2024/08/22(木)00:37 ID:i7Z+NkOw(1) AAS
>>185
たぶん、IDの後に改行を入れない方法が分からないのではと愚行するが、
sedの最初の置換でgオプションをつけなければ、最初の1つ目が処理されるよ。
188: 2024/08/23(金)12:53 ID:gCBQWzqI(1) AAS
君はスキノサウルスあるやろ
画像リンク[jpeg]:i.imgur.com
画像リンク[png]:i.imgur.com
189: 2024/09/14(土)16:23 ID:+apC+RN0(1/3) AAS
NGレス番号123-184,188
ところで専ブラのSikiを使っているんだけどさ
--no-sandbox付けないと起動しないんで
いちいちターミナルでポチポチするの面倒だからシェルスクリプト書いてそこから起動させてる
#!/bin/sh
/home/oresama/Siki-0.31.10.AppImage --no-sandbox
sleep 1;
にしてるんだけど
バージョンアップ時に書き換えしないで済むように出来ないかな?
190(1): 2024/09/14(土)16:33 ID:LtyoCAMa(1) AAS
Sikiのファイル名のバージョン削れ
191: 2024/09/14(土)18:07 ID:+apC+RN0(2/3) AAS
>>190
でもそれだとアプデごとに削ることになるから手間暇変わらんのよね
192(1): 2024/09/14(土)18:16 ID:4sLzdNTL(1) AAS
単に /home/oresama/Siki-*.AppImage とかでいいんじゃないの
複数あった場合等を考慮するなら最初の1つだけを採用するような細工もいるけど
193: 2024/09/14(土)19:27 ID:+apC+RN0(3/3) AAS
>>192
これで大丈夫です
ありがとうございます
194(2): 03/14(金)22:06 ID:yQqaZaMG(1/2) AAS
#!/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} ...
次のようにまとめるのはどうしてもうまくいかずに諦めました。
省2
195: 03/14(金)22:21 ID:TSxOQOne(1) AAS
$ rsyncopt="--rsync-path=\"sudo rsync\" -avR --delete"
$ for i in ${rsyncopt} ; do echo $i ; done
--rsync-path="sudo
rsync"
-avR
--delete
という風にスペースで切られてる
196: 194 03/14(金)23:51 ID:yQqaZaMG(2/2) AAS
どうもありがとう。
sudo rsyncみたいなのについて調べながらあちこち拾い読みしてて、
少しよく読めばいろいろ中途半端でした。
外部リンク:superuser.com
197(1): 04/15(火)21:00 ID:fqe9VUsg(1) AAS
300コある連番のファイル名を次のように一気に変更したいです
001.txt → あいうえお.txt
002.txt → かきくけこ.txt
003.txt → さしすせそ.txt
…
300.txt → ほにゃらら.txt
変更後の名前はテキストファイル(name.txt)に入っていて、対応する行番号の文字列のファイル名にしたいです
name.txt
あいうえお
かきくけこ
省5
198: 04/15(火)23:55 ID:sx1QUHxq(1) AAS
forとreadを駆使してやれないこともないが、一回しか使わないのであれば
エディタの機能でname.txtの先頭にmv 行番号.txtを挿入してしまうのが簡単に思う
マルチカーソルか矩形選択のあるエディタなら簡単
199(1): 04/16(水)00:40 ID:6F/gZE8F(1) AAS
確かに…冷静に考えたらシェル芸的なこと考えるよりハードコードしたほうが楽でした
ありがとうございます!
200: 04/16(水)05:45 ID:sOfZDkAa(1) AAS
>>199
一時ファイルを作成していいなら、自分なら
mv 連番.txtが入った一時ファイルとnames.txtをpasteで連結して別の一時ファイルに吐き出して、その一時ファイルを実行するシェルスクリプトを書くかな。
paste <(for t in {001..100}.txt; do echo mv $t; done) names.txt
みたいな感じで
201: 04/16(水)10:34 ID:jfx6KBiR(1) AAS
専用使い捨てハードコーディング 良い発想だね
汎用を目指すのも主流の思想だけに 忘れそうになる観点
202: 04/16(水)11:03 ID:LdqpgNDU(1) AAS
bashでViモード使ってる時はv押して一時的なVimを開き、Vim内でlsしてファイル名取得して矩形選択で編集して、Vim閉じれば記載内容が実行される感じで使い捨てが楽だった
zshのViモードはVimは開かないからそこはbashが惜しい
203(1): 05/01(木)14:45 ID:z1HjPwT8(1/3) AAS
>>197
cat -n name.txt | while read n t; do
s=$(printf "%03d.txt" $n)
f="$t.txt"
mv -f "$s" "$f"
done
204: 05/01(木)14:55 ID:z1HjPwT8(2/3) AAS
>>194
eval "rsync ${rsyncopt} ..."
205(1): 05/01(木)15:30 ID:mHbJP3Tq(1/2) AAS
>>203
name.txtには、1行につき項目は1つだけだよ。t のみ
行番号は何行目というのだろう。nが入ってるんだったら「行」は要らない番号でいいだろからね
206: 05/01(木)15:42 ID:mHbJP3Tq(2/2) AAS
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じゃなきゃパイプでのサブプロセス問題があるから使わない方向にした。これではその問題は発生しない関係ないけど
207: 05/01(木)16:39 ID:z1HjPwT8(3/3) AAS
>>205
cat -n
208(1): 07/06(日)10:20 ID:mxVBG5kA(1) AAS
プログラム技術板のシェルスクリプト総合スレ消えた?
あそこ一番活発で伸びてたスレだったと思うんだけれど
建てて良いかな?
209(1): 07/07(月)10:36 ID:a7b43M24(1/2) AAS
falseより[ ]の方が使いでがあるように最近思えてきた
タイプ数も少ないし、見た目でブラケットの中に何もないことから、空(falsy)意味論を理解するのも容易
210: 07/07(月)10:40 ID:a7b43M24(2/2) AAS
まあさすがに変数に入れる時はさすがに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
省1
211: 07/07(月)19:16 ID:lSyk0nlH(1/2) AAS
>>208
プログラム技術板にもあったけど活気があったのはUNIX板の奴だった気が
UNIX系の板自体がもはやかつての活気はないし、今後はAIに質問するのが主流になるだろうから
たてても過疎るだけじゃないかな
212: 07/07(月)19:28 ID:lSyk0nlH(2/2) AAS
>>209
[ ] なんて使ったことなくて、この書き込みで初めて知ったわ
知らずに他人のソース読んでる際にこの表現がでてきたら
「なにか式を書こうとしてそのまま忘れたんだろうなぁ(、何が入るか全くわからん...)」
になるので他人には優しくないかも
213: 08/27(水)21:47 ID:36SOHlNb(1) AAS
いや、if false;then∼fiなんて、複数行のコメントアウトに使うものw
emacslispの(if nil (progn∼)と同じ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.101s*