シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/)
シェルスクリプト総合 その28
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2018/07/24(火) 11:01:16.36ID:r0TJj2hB952デフォルトの名無しさん
2018/09/21(金) 02:43:02.52ID:v8LFlyn0953デフォルトの名無しさん
2018/09/21(金) 02:43:36.28ID:v8LFlyn0954デフォルトの名無しさん
2018/09/21(金) 04:04:34.44ID:m7KC0L1Z >>951
拡張子を txt にしてから開いてウィザード動かすか、または 0 で始まる数字だけの文字列は ="0123" のようにして最初から作っておくとうまく行く。
拡張子を txt にしてから開いてウィザード動かすか、または 0 で始まる数字だけの文字列は ="0123" のようにして最初から作っておくとうまく行く。
955デフォルトの名無しさん
2018/09/21(金) 04:48:00.63ID:dtC8HZuo ちょっと荒れたのであまり話題にはしたくないものの
Unicodeの区切り文字を使うのはいい手段だと思う。
ただし思い切り独自規格なので既存の製品には対応できないけどね。もちろん
Unicodeの区切り文字を使うのはいい手段だと思う。
ただし思い切り独自規格なので既存の製品には対応できないけどね。もちろん
956デフォルトの名無しさん
2018/09/21(金) 05:30:02.46ID:v8LFlyn0 RS、USってのはUnicodeじゃなくてASCIIの制御文字だよ
957デフォルトの名無しさん
2018/09/21(金) 05:37:53.78ID:v8LFlyn0 もちろんUnicodeでも使えるけどね
958デフォルトの名無しさん
2018/09/21(金) 06:06:23.57ID:v8LFlyn0 一般人はCSVファイルをExcelで編集する
となると別にテキスト形式ベースじゃなくても良いわけだ
だとすると誰がCSVファイルを望んでいるのだろうか?
おそらくプログラマなんだろうね。
考えてみればテーブル型データに限っていれば
CSVはJSONよりも効率よくデータを記述できる
JSONだったらこんな感じだしね
[
{"field1": 1, "field2": 2, "field3": 3},
{"field1": 1, "field2": 2, "field3": 3},
]
これがCSVだとここまでコンパクトに纏められる
field1,field2,field3
1,2,3
1,2,3
一般人のことを考えないくていいという前提のものと、もっと良い形式が考えてみよう
それもシェルスクリプトで扱うのが容易な形式
一行ずつ読み取るのだから、一データの終わりはLFであるべきだろう
そしてデータの中には改行は含まず、カンマや制御コードはprintfコマンドで
簡単に解釈ができるよう8進数にエスケープを行う。どうかね?
エスケープの処理を除けば既存のツールでも扱えるだろう
ただ問題があるとすれば、printfで変数に代入する時forkを行う必要があるということだな
これだと時間がかかってしまう。かといって1文字ずつパースするのも時間がかかる
一行ずつ処理するのが可能で、1カラムずつ処理するのも可能で処理に時間がかからない方法はないだろうか
となると別にテキスト形式ベースじゃなくても良いわけだ
だとすると誰がCSVファイルを望んでいるのだろうか?
おそらくプログラマなんだろうね。
考えてみればテーブル型データに限っていれば
CSVはJSONよりも効率よくデータを記述できる
JSONだったらこんな感じだしね
[
{"field1": 1, "field2": 2, "field3": 3},
{"field1": 1, "field2": 2, "field3": 3},
]
これがCSVだとここまでコンパクトに纏められる
field1,field2,field3
1,2,3
1,2,3
一般人のことを考えないくていいという前提のものと、もっと良い形式が考えてみよう
それもシェルスクリプトで扱うのが容易な形式
一行ずつ読み取るのだから、一データの終わりはLFであるべきだろう
そしてデータの中には改行は含まず、カンマや制御コードはprintfコマンドで
簡単に解釈ができるよう8進数にエスケープを行う。どうかね?
エスケープの処理を除けば既存のツールでも扱えるだろう
ただ問題があるとすれば、printfで変数に代入する時forkを行う必要があるということだな
これだと時間がかかってしまう。かといって1文字ずつパースするのも時間がかかる
一行ずつ処理するのが可能で、1カラムずつ処理するのも可能で処理に時間がかからない方法はないだろうか
959950
2018/09/21(金) 07:09:48.97ID:m8DL5ZJ4 >>931
>Excelデータの中の改行はLF。(一行の最後はCRLF)
もし、このCSV を、Linux で扱う場合には、やばくない?
行区切りをCRLF に設定すれば、データ中に、LF があっても問題ないのかな?
>Excelデータの中の改行はLF。(一行の最後はCRLF)
もし、このCSV を、Linux で扱う場合には、やばくない?
行区切りをCRLF に設定すれば、データ中に、LF があっても問題ないのかな?
960デフォルトの名無しさん
2018/09/21(金) 08:12:42.97ID:LR4lwFnG961デフォルトの名無しさん
2018/09/21(金) 09:34:09.19ID:7bTZc31z >>958
fork?どういう処理を想定してるのか?
fork?どういう処理を想定してるのか?
962デフォルトの名無しさん
2018/09/21(金) 09:47:27.07ID:NXw3/PDJ みんなで輪になって踊る処理やろ
963デフォルトの名無しさん
2018/09/21(金) 09:56:30.62ID:7bTZc31z 【審議中】
∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ´・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u'. `u-u'
∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ´・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u'. `u-u'
964デフォルトの名無しさん
2018/09/21(金) 10:10:07.17ID:v8LFlyn0965デフォルトの名無しさん
2018/09/21(金) 10:49:46.73ID:v8LFlyn0 なんか次から次へと変なテクニックが編み出されていくw
966デフォルトの名無しさん
2018/09/21(金) 12:41:08.14ID:FeY49FdE 構内放送「直ちに中庭に集合してください」
従業員 (また誰かforkコマンド実行したな…)
従業員 (また誰かforkコマンド実行したな…)
967デフォルトの名無しさん
2018/09/21(金) 12:48:09.10ID:v8LFlyn0 >>960
> 別にLinuxでも行区切りがCRLFで行内の改行がLFのアプリは作れるでしょ
よく考えたら、シェルスクリプトでもそれなりに使いやすいかもしれない。
readで1行(LFがくるまで)読んで、読み込んだ最後がCRだったら行区切りあつかい
そうでなければ同一行としてあつかえば良いわけだし
> 別にLinuxでも行区切りがCRLFで行内の改行がLFのアプリは作れるでしょ
よく考えたら、シェルスクリプトでもそれなりに使いやすいかもしれない。
readで1行(LFがくるまで)読んで、読み込んだ最後がCRだったら行区切りあつかい
そうでなければ同一行としてあつかえば良いわけだし
968デフォルトの名無しさん
2018/09/21(金) 12:50:18.79ID:isbUNhMl 8進数エスケープってbashの機能で文字に直せなかったっけ?
969デフォルトの名無しさん
2018/09/21(金) 12:53:33.36ID:v8LFlyn0 printf以外でってこと?
970デフォルトの名無しさん
2018/09/21(金) 12:56:03.96ID:dtC8HZuo たとえばエスケープをするのは
US,RS,エスケープ文字自体
↑これでどうだろうか各種エスケープは
\#,\%,\\
これ。
ちなみにあたり前だが 端末の画面に「分かりやすく」表示するときは
\#→水平タブ,\%→改行(LF)
に置換するのがいいだろう。
US,RS,エスケープ文字自体
↑これでどうだろうか各種エスケープは
\#,\%,\\
これ。
ちなみにあたり前だが 端末の画面に「分かりやすく」表示するときは
\#→水平タブ,\%→改行(LF)
に置換するのがいいだろう。
971デフォルトの名無しさん
2018/09/21(金) 12:57:07.23ID:dtC8HZuo972デフォルトの名無しさん
2018/09/21(金) 13:28:31.46ID:v8LFlyn0 >>971
あー、dashで使えないから頭から抜け落ちてたわw
あー、dashで使えないから頭から抜け落ちてたわw
973デフォルトの名無しさん
2018/09/21(金) 18:20:35.40ID:dtC8HZuo974デフォルトの名無しさん
2018/09/21(金) 20:25:16.42ID:FeY49FdE 思いつきだけど、エスケープ文字自体を表すときは別の文字をエスケープして表現するほうが何かと都合がよくないか?
975デフォルトの名無しさん
2018/09/21(金) 21:30:40.16ID:dtC8HZuo976デフォルトの名無しさん
2018/09/21(金) 23:27:59.03ID:/eJt2TVD 例えば\rsを検索したいときに、\が\\でなければ\rsを検索するだけでよいけど、\が\\のときは見つけたあとに\の数をたどってそれが本当に\rsなのか調べないといけない、とか、
とある場所までシークしたときに、その場所の文字が何なのか、\を繰り返し数えないといけない、とか、
\?はすぐエラーとわかるとか。
とある場所までシークしたときに、その場所の文字が何なのか、\を繰り返し数えないといけない、とか、
\?はすぐエラーとわかるとか。
977デフォルトの名無しさん
2018/09/22(土) 00:50:25.74ID:9bcvhAfJ978デフォルトの名無しさん
2018/09/22(土) 01:10:24.01ID:Whfp6XnZ979デフォルトの名無しさん
2018/09/22(土) 03:37:20.07ID:LHC7cNdc >>978
よくわからん。そのルールだと
\rsを表すときは、\%rs
\usを表す時は、\%us
\%を表す時は、\%%
%を表す時は、%
ってことか?
%を検索した時、それが本当の%であるかは
一文字前が\であるかどうかを調べないといけなくて、
\rsを検索したい時は、\%rsで検索しないといけないってことか?
よくわからん。そのルールだと
\rsを表すときは、\%rs
\usを表す時は、\%us
\%を表す時は、\%%
%を表す時は、%
ってことか?
%を検索した時、それが本当の%であるかは
一文字前が\であるかどうかを調べないといけなくて、
\rsを検索したい時は、\%rsで検索しないといけないってことか?
980デフォルトの名無しさん
2018/09/22(土) 04:10:01.34ID:wyOkhzEz >>979
あってるよ。
\が\\の場合は、
\を検索するときは\\を見つけるだけじゃ不十分だけど、
\が\%の場合は、
%を検索するときは一文字前が\でない%を見つけるだけで十分だし、
\を検索するときも\%を見つけるだけで十分なんだ。
同様に、
\が\\の場合は、
\rsを検索するときは\\rsを見つけるだけじゃ不十分だけど、
\が\%の場合は、
\rsを検索するときは\%rsを見つけるだけで十分になる。
あってるよ。
\が\\の場合は、
\を検索するときは\\を見つけるだけじゃ不十分だけど、
\が\%の場合は、
%を検索するときは一文字前が\でない%を見つけるだけで十分だし、
\を検索するときも\%を見つけるだけで十分なんだ。
同様に、
\が\\の場合は、
\rsを検索するときは\\rsを見つけるだけじゃ不十分だけど、
\が\%の場合は、
\rsを検索するときは\%rsを見つけるだけで十分になる。
981デフォルトの名無しさん
2018/09/22(土) 06:13:58.91ID:dKJ+Zat7 どうせRS,USとかの非文字を使うんなら
エスケープ文字もESCでいいんじゃないだろうか。
エスケープ文字もESCでいいんじゃないだろうか。
982デフォルトの名無しさん
2018/09/22(土) 06:46:52.90ID:LHC7cNdc bashでさ、typesetで関数の中身を出力できるじゃん?
それをevalで評価したら同じ関数が出来上がるじゃん?
これってどれくらい信用できるんだろう?
作成した関数のコードそのままの形で出力されるなら
evalで評価して同じものができるだろうけど、
ぱっとみtypesetで出力するされたものをみると、
改行の位置とか変わって整形された状態になって
関数にはfunctionが頭に追加されてる。
元のコードをどれくらい書き換えるんだろうか?
これ以外になにか変わる事知ってたりする人いない?
それをevalで評価したら同じ関数が出来上がるじゃん?
これってどれくらい信用できるんだろう?
作成した関数のコードそのままの形で出力されるなら
evalで評価して同じものができるだろうけど、
ぱっとみtypesetで出力するされたものをみると、
改行の位置とか変わって整形された状態になって
関数にはfunctionが頭に追加されてる。
元のコードをどれくらい書き換えるんだろうか?
これ以外になにか変わる事知ってたりする人いない?
983デフォルトの名無しさん
2018/09/22(土) 11:47:57.86ID:rfhCLeCr 次スレたてるわ
984デフォルトの名無しさん
2018/09/22(土) 11:56:38.68ID:rfhCLeCr985デフォルトの名無しさん
2018/09/22(土) 12:03:50.02ID:rfhCLeCr 今まで人気ないスレだったから全く不要だったわけだが、今後は次スレ立てる安価指定しといたほうがいいか
次回の勢い次第でテンプレ編集で
次回の勢い次第でテンプレ編集で
986デフォルトの名無しさん
2018/09/22(土) 21:25:51.74ID:SEEeyc/q 埋めろって言っても反発されて埋まらん気もするし自分でやるわ
987デフォルトの名無しさん
2018/09/22(土) 21:26:12.71ID:SEEeyc/q 埋め
988デフォルトの名無しさん
2018/09/22(土) 21:26:36.85ID:SEEeyc/q 埋め
989デフォルトの名無しさん
2018/09/22(土) 21:26:59.15ID:SEEeyc/q 埋め
990デフォルトの名無しさん
2018/09/22(土) 21:27:22.40ID:SEEeyc/q 埋め
991デフォルトの名無しさん
2018/09/22(土) 21:27:46.75ID:SEEeyc/q 埋め
992デフォルトの名無しさん
2018/09/22(土) 21:27:56.78ID:wyOkhzEz 埋めない!
993デフォルトの名無しさん
2018/09/22(土) 21:27:56.90ID:PGp2AKzL 荒らすなよハゲ
994デフォルトの名無しさん
2018/09/22(土) 21:28:09.05ID:SEEeyc/q 埋め
995デフォルトの名無しさん
2018/09/22(土) 21:28:36.50ID:PGp2AKzL ID:SEEeyc/q ← アラシ
996デフォルトの名無しさん
2018/09/22(土) 21:28:55.88ID:SEEeyc/q 埋めも理解できない阿呆がいるのか…
997デフォルトの名無しさん
2018/09/22(土) 21:30:18.74ID:SEEeyc/q このスレも埋まらんうちにすでにCSV荒らしと半角荒らしが次スレ移動してるからな
前スレ使え言っても子供が言うこと聞くわけないから自分でやることにしただけよ
前スレ使え言っても子供が言うこと聞くわけないから自分でやることにしただけよ
998デフォルトの名無しさん
2018/09/22(土) 21:31:28.53ID:wyOkhzEz 梅屋敷!
999デフォルトの名無しさん
2018/09/22(土) 21:31:44.51ID:SEEeyc/q 埋め
1000デフォルトの名無しさん
2018/09/22(土) 21:32:32.82ID:SEEeyc/q 終わり。質問はなし
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 10時間 31分 16秒
新しいスレッドを立ててください。
life time: 60日 10時間 31分 16秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
