[過去ログ] シェルスクリプト総合 その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○○ディレクトリ直下にコピー

このようなシェルスクリプトを書きたいのですが教えてください
144: 名無しさん@お腹いっぱい。 [sage] 2018/05/26(土) 11:18:16.86 AAS
条件文の | をパイプとかいうからわけわかんなくなる
164
(1): 160 [sage] 2018/06/03(日) 01:46:34.86 AAS
すいません。>>161
161(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/03(日) 00:35:29.50 AAS
11st とか 12nd になってるけどそれはいいの?
さまのおっしゃる通りです。
$ for i in $(seq 30); do echo $i$(case $i in *1?) echo th;; *1) echo st;; *2) echo nd;; *3) echo rd;; *) echo th;; esac); done
これでどうでしょうか
194
(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/05(火) 17:18:07.86 AAS
プライドで自分が馬鹿でわかりませんって言うことができないから
それは悪くねぇけどさぁ、難しい状態になっちゃんてんのよー
って言いたいからそう書いてるんだろ
それぐらい読み取れよ
267
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/07(木) 23:26:19.86 AAS
>>265
265(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/07(木) 22:39:09.40 AAS
言語のオブジェクト(配列)を他のプロセスにそのまんま渡せるスクリプト言語ってなんかあったっけ?
間にはシリアラズ/デシリアライズなどの仕組みがあるのは当然だが、そんなの全く意識させない言語でサポートしている言語って。フレームワークなど使えばは抜きで。スクリプト言語でなくてもいいけどとりあえずこのスレなのでスクリプト言語で
じぇーそんとかそういうためにあるんじゃないの?
292: 名無しさん@お腹いっぱい。 [sage] 2018/06/09(土) 00:14:40.86 AAS
>>291
291(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/09(土) 00:12:49.10 AAS
>>290
busybox、alpine
そういう環境で、CSVファイルの扱いが必要かあ?
307: 名無しさん@お腹いっぱい。 [sage] 2018/06/09(土) 03:39:18.86 AAS
今日はみなさん夜更かしですね
まるで自えn(ry
359: 名無しさん@お腹いっぱい。 [sage] 2018/06/10(日) 16:23:33.86 AAS
データ | フィルタ | シェルスクリプト(関数なり) | フィルタ > データ
フィルタをどう作るかは具体的じゃないとでCVSしか例にあげてないからCVSなだけなんだが
っていういたって普通のことなのに。そうじゃないナニかを想定しているらしけど、そのナニかの具体的なことは全く言わずに指摘wという否定なだけだもんな
その指摘もトンチンカンなこともあり、ただただ無闇に偉ぶりたいだけにしか見えんなあ
365: 名無しさん@お腹いっぱい。 [] 2018/06/10(日) 16:28:23.86 AAS
CSVスレになってんのはなぜなんだ
勉強にはなるけど
463
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/11(月) 00:03:29.86 AAS
>>461
461(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/10(日) 23:43:44.04 AAS
>>460
あー、そういうことか。いちおう試してみていたんだけどね。できんの?
後処理が必要ないのでそれができるのなら確かにそうだな
ん? ようやく理解したのか?
煽りフェーズが終わると途端につまらなくなるなw

普通にできるし、俺はすでに近い形のものを実装している
自分の用途に合わせて最適化してるんで、汎用的にはなってないがな
(その後に>>282
282(5): 名無しさん@お腹いっぱい。 [] 2018/06/08(金) 23:18:13.62 AAS
Excelから出力したCSVのように一行(?)の中に改行が含まれた
データを扱うにはどうしたら良いでしょうか?

もう少し具体的に書きます。

カンマ区切りのCSVデータだと仮定して、
シェルスクリプトの中に関数を一行ごとに呼び出し、
列を引数に対応させたいです。

例えば以下のような内容のファイルがあったとして
a1,a2,a3,a4
b1,b2,b3,b4
c1,c2,c3,c4

syori "a1" "a2" "a3" "a4"
syori "b1" "b2" "b3" "b4"
syori "c1" "c2" "c3" "c4"

という風にsyori関数を呼び出したいのです。

ただし実際には各項目(a1等の部分)にExcelから出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです
を質問という形でおまいらに問題を出したのだよ)

最初はデータの方をエスケープしてたんだが目に見えて遅くなってな
エスケープの方式をシェルビルトインのprintfでアンエスケープ
できるようにもしたが大した効果はなかった。

そこで制御文字を眺めていたら、その用途ピッタリの文字を見つけたのだよ

データとしては、0x1F(US: Unit Separator)を各項目の区切り(CSVでいうカンマ相当)
0x1Eを(RS: Record Separator)を名前の通り、データ区切りとして使ってる
USの方はIFSを使うことでPOSIX準拠でforなどで処理することができる

さらに0x1D(GS: Group Separotor)を使えば階層構造があるデータを取り扱えるだろうし
0x1C(FS: File Separator)を使えば標準入力で複数のファイルを渡すようなこともできるだろう

便利だがそれに気づいたのは>>323
323(5): 名無しさん@お腹いっぱい。 [sage] 2018/06/10(日) 02:20:54.22 AAS
U+001EやU+001Fを区切り文字として利用してる方いらっしゃいますか?
結構便利(絶対に他の文字と衝突しない)だと思うんですが、そういうシェルスクリプトを見たことがありません。
が最初。
おまいらは最初、シェルスクリプトで扱うもんじゃないとか言っていた
>>323のあともその使い道に気づかないでいた。まだまだだなw
538
(3): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 18:46:13.86 AAS
俺はレスしただけだけど?
>>529
529(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 12:44:23.95 AAS
>>395
>>396
多分\エスケープ云々は途中でなんらか処理をする時にRFC準拠のエスケープだと不都合だからじゃないかな
「Mika says "I'm Happy"」という文を一つのフィールドとして処理するとき
RFC準拠だと
「Mika says ""I'm Happy""」になるけど、例えばこれをsed(1)やらawk(1)に通したいと思ったときは
「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?

そういうことなんじゃないかな。
が書かなければ、この話をすることもなかった
574: 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 01:40:17.86 AAS
そういう悪口しか言えなくなったらおしまい
575
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 01:55:40.86 AAS
そろそろ名前つけてくれませんかね
594: 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 09:56:16.86 AAS
>>591
591(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 08:58:22.24 AAS
>583の脳内では全く論がない噛みつくだけの行為も反「論」になるらしい
これもう日本語が分かってないってレベルじゃないな
ただの小学生だわ
論じゃなければ、何か言い返せよって言うだけの話だけど?
ほんと本質じゃないどうでもいい所にしか反応しないのなw
870: 名無しさん@お腹いっぱい。 [sage] 2018/07/07(土) 23:12:15.86 AAS
カンマ入っている場合には "" もしくは '' で囲わなければならないから、それはシェルスクリプトにとっても都合がいい、
IFS=',' fields=($raw)
で簡単にと思ったがそう甘くはなかった。最近流行りのevalでなんとかだとしても、$とかまた別の問題があるしなあ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s