[過去ログ] シェルスクリプト総合 その27 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
72
(6): 名無しさん@お腹いっぱい。 [] 2018/05/21(月) 09:50:43.86 AAS
/home直下にhoge00〜hoge99までの名前がついているディレクトリがあるとします
他にも/home直下にはディレクトリが存在します
ディレクトリ名を検索しながら、hoge00-hoge99の名前にマッチした複数のディレクトリの中の、ある特定のディレクトリに既存のファイルであるtestという名前のファイルをコピーしたいです
ある特定の、という意味は
・hoge○○ディレクトリ直下にtestというファイルがあったら→スルー
・testというファイル名のファイルがhoge○○直下になければ、既存のtestを該当hoge○○ディレクトリ直下にコピー

このようなシェルスクリプトを書きたいのですが教えてください
81: 72 [] 2018/05/21(月) 10:39:59.27 AAS
自分はfindを使うやり方を考えていました
86: 72 [] 2018/05/21(月) 12:04:38.46 AAS
>>82
82(3): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:42:46.03 AAS
findは存在を確認するのは楽だろうけど、存在しないことを確認するのは面倒じゃない?
考えるのに役立つアドバイスありがとうございます

>>83
83(2): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:50:09.46 AAS
>>77
[ ! -f "$filehoge" ] && exit 1
の間違いもあった。&&抜けてた、すまん。

>>79
ん?まあ、for(forはアレでアレの回避があったような気がするがすぐ忘れる。 | while read hoge しか使わないので) と if(明示するだけだけど)で書けばいいよ

...
for hogedir in $(seq -f 'hoge%02g' 1 99)
...
if [ -d "$hogedir" ] && [ ! -f "$hogedir/$filehoge" ]; then
cp "$filehoge" "$hogedir"
...
fi
>>84
84(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:57:49.03 AAS
あー、" で括るだけか。アレの場合も
for hogedir in "$(seq -f 'hoge%02g' 1 99)"
が、よりかな
>>85
更新してくださりありがとうございますm(_ _)m
読ませていただきます
87: 72 [] 2018/05/21(月) 12:08:42.09 AAS
初心者ですが面白くなってきました
今日中に仕上げられるよう頑張ります
104: 72 [sage] 2018/05/22(火) 19:13:09.08 AAS
>>77
77(3): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:19:49.89 AAS
filehoge="test"
[ ! -f "$filehoge" ] exit 1
seq -f 'hoge%02g' 1 99 | while read hogedir
do
[ -d "$hogedir" ] && [ ! -f "$hogedir/$filehoge" ] && { cp "$filehoge" "$hogedir"; echo "copied into $hogedir"; }
done
>>78
78(2): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:20:58.69 AAS
seq -f 'hoge%02g' 0 99
の間違い。00からなので
これで一発で成功しました
驚いています
このコードをもっと理解すると共に、自分も先輩のようなプログラマーになれるよう勉強を続けていきたいです
マジで助かり、勉強になりました
本当にありがとうございました
105
(1): 72 [sage] 2018/05/22(火) 23:19:32.73 AAS
もちろん>>83の修正も加えさせていただきました
コードをくだすった方と同じ方かはわかりませんがそもそも>>75
75(2): 名無しさん@お腹いっぱい。 [sage] 2018/05/21(月) 10:09:07.33 AAS
それを使わずにどうやろうというんだ
要するに連番ディレクトリに全てtestファイルがあるようにしたい、ただし既存のtestファイルは上書きしない、でいいのか
でこちらの仕様を把握してくださったのがすごい
要求仕様、要件定義の大切さも少しわかりました
そしてコードはこちらの望む通りの結果を出して一発で動きましたよと
107: 72 [sage] 2018/05/22(火) 23:57:04.16 AAS
>>106
106(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/22(火) 23:39:50.60 AAS
>>105
別人だ。俺はスマホだからここにコードは書けん
そうでしたかm(_ _)m

いずれにせよスレの複数の先輩方にお世話になりました
しかも勉強になります
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s