1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 05:22:16.82 .net] シェルスクリプトの総合スレです。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 ・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/ (左上の「Shell & Utilities」 から参照することができます。) ・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆうな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した
178 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/17(月) 09:08:53.72 .net] grep 等の外部コマンド?を使わずに任意の文字列の最初に見つかる3桁の数字を得る方法があれば教えて下さい (例えば、abc_4_de_99_fgh_ijklm_no_567_2_123_pqrst_uvwx_yz だと567)
179 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/17(月) 12:51:47 .net] bashなら=~と、$BASH_REMATCH使えばできるんじゃね
180 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/17(月) 12:52:43 .net] >>174 おまえは俺かw 似たようなことをやったよ。grepで(笑) 外部コマンドを使わないなら、こうなるから面倒くさいんだよな。 できるけど面倒くさい。だから遅いけどgrepにした。 v=abc_4_de_99_fgh_ijklm_no_567_2_123_pqrst_uvwx_yz v=${v#"${v%%[0-9][0-9][0-9]*}"} v=${v%"${v#[0-9][0-9][0-9]}"}
181 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/17(月) 13:01:06 .net] シェルスクリプトだと(bash依存は知らん) マッチした部分を含めて削除はできるけど マッチした部分を残したその他を削除が簡単にできないんだよね。 だから「マッチした部分を含めて削除」したら残りが 「マッチしなかった部分」になるのを利用して、 改めて全体から「マッチしなかった部分」を取り除くというのを前後でやればできる。
182 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/19(水) 01:25:53 .net] ありがとうございます 面倒でも前後から不要部分を取り除くしかないのですね
183 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/19(水) 03:44:34.80 .net] 「マッチした部分を含めて削除」ってどうやるの?
184 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/19(水) 07:39:09.82 .net] >>179 ${v%%[0-9][0-9][0-9]*} ってかいてあるやん abc_4_de_99_fgh_ijklm_no_567_2_123_pqrst_uvwx_yz ・・・(1) ↓ ${v%%[0-9][0-9][0-9]*} abc_4_de_99_fgh_ijklm_no_ ・・・(2) ↓ (1)ー(2) 567_2_123_pqrst_uvwx_yz ・・・(A) ↓ ${v%"${v#[0-9][0-9][0-9]}"} _2_123_pqrst_uvwx_yz ・・・(B) ↓ (A)ー(B) 567
185 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/19(水) 12:18:21 .net] >>180 丁寧にありがとう!
186 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/21(金) 17:55:59.15 .net] 今更だが>>180 は × ${v%"${v#[0-9][0-9][0-9]}"} ○ ${v#[0-9][0-9][0-9]}" だな
187 名前:名無しさん@お腹いっぱい。 [2020/02/22(土) 16:29:53 .net] それらをPowerShellで書くとどうなるか? 一度でも考えてみたことはありますか?
188 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/22(土) 16:45:28.02 .net] PowerShellで書くとLinuxで動かすのが大変になります。
189 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/02/26(水) 03:34:54.75 .net] 5年くらいするとセキュリティパッチが出なくなって使用禁止になるから また作り直しになるんだろうどうせ。
190 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/13(金) 23:32:50.67 .net] 例えば中身が 3,soba,inarizusi,hishimoti,ushioziru ... のcsvファイルなら最初の数字が3なので以下の文字列の3番目をつないで soBa inArizusi hiShimoti usHioziru ... でbash ... というように csvファイルの最初の値で以降の処理が変わる場合はどうすればいいでしょうか? 一度ファイルを最後まで空読みすれば簡単なのですが、読み込みは1度で終わらせたいです。
191 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 16:01:32.08 .net] 宿題は自分でやりなよ
192 名前:名無しさん@お腹いっぱい。 [2020/03/14(土) 17:54:51 .net] >>186 なんでそんな分かりづらい説明するんだ?
193 名前:名無しさん@お腹いっぱい。 [2020/03/14(土) 17:55:37 .net] 全く意味がわからん。 誰か翻訳してくれ
194 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 18:20:44 .net] >>186 引数で単語と数字nを受け取ってn文字目の単語を返す関数を書けばいいだけ
195 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 18:34:21 .net] >>190 日本語ではなくてbashでお願いします!!
196 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 18:41:35 .net] >>189 結果だけ見たら 入力テキストをカンマで区切って 最初の数値を取得 ⇒ nとする 残りの文字列のn番目の文字をアッパーケースに変換して空白区切りで連結する かな 俺ならテキストが小さいならBashで一気に読んで処理すればいいと思うしでかいならPythonとかで処理する
197 名前:名無しさん@お腹いっぱい。 [2020/03/14(土) 20:00:13 .net] > 俺ならテキストが小さいならBashで一気に読んで処理すればいいと思うしでかいならPythonとかで処理する これはなんで? 小さいとかの境目はどれくらい?
198 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 20:15:35 .net] そんなこと聞いてくるようではセンスがないよ センスがない奴にいくら説明しても無駄
199 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 20:18:24 .net] pythonだと単語のn文字目を取り出すなんて朝飯前だしな 関数書く手間が一つ省ける
200 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 20:24:34 .net] 疑問になった点は「テキストが小さいなら」です。 その他の話は聞いてません。
201 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 20:26:37 .net] > pythonだと単語のn文字目を取り出すなんて朝飯前だしな 単語の3文字目(オフセット2から1文字)を取り出す echo "${str:2:1}" Pythonだとどう朝飯前なんですか?
202 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 20:48:13 .net] 早く答えのスクリプトを書いてください!! 遅いですよ!!
203 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 21:05:30 .net] >>196 個人的には今どきなら1MB以下なら小さい1GB以上ならでかい その間ならケースバイケース PCの性能やメモリ容量とかと相談
204 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 21:19:09 .net] >>186 > 一度ファイルを最後まで空読みすれば これはどういうスクリプトなの?
205 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 22:00:38.59 .net] >>199 1MBってことは、1行256バイトとして4096行以下なら小さいってことですね。 10MBで約4万行、100MBで約40万行、1GBで400万行 昔のExcelの制限が1シート65000行だったことを考えると エクセルで扱えるデータなら問題なさそうですね
206 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/14(土) 22:38:14.38 .net] アスペかよw アスペならちゃんと改行コードも数えるんだぞ?
207 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/15(日) 13:40:07 .net] >>202 お前なんのためにレスしたの? >>201 が言ってることは正しいし、お前の主張は何も含まれていない。 ただ、レスしただけ
208 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/20(金) 18:13:05 .net] 185です。説明不足ですみません。 やりたいことは1行目を読み取り、2行目以降はそのままwhileループで最後まで読みたいのです。 ただそのためだけにフラグを使うのもなんだかなぁと。
209 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/20(金) 19:59:54 .net] わざわざ空読みする理由が分かんねえ 今出来てる状態のスクリプト貼って何がうまく行かないのか説明してみ
210 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/21(土) 00:02:26 .net] #!/bin/sh お願いします
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/21(土) 00:18:20 .net] >>206 そこまでは上手く書けてる その調子で頑張れ
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/21(土) 13:58:51.87 .net] >>191 今日一番ワロタ キミもbashで質問しなよ
213 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/21(土) 14:07:34.22 .net] bash は重複しない4文字である。つまり2bitのデータと考えられる 日本語を1文字16bitのデータと考えると、 1文字をbashの4文字×8組=32個のデータで表現できる つまりbashで質問すると32倍のデータが必要になる 1レスに2048バイト、1024文字を書き込めるから32文字の質問であれば bashで質問することは可能
214 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/21(土) 15:26:35 .net] 向いてないんだろ こういうの
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/22(日) 10:34:31.24 .net] >>209 > 1文字をbashの4文字×8組=32個のデータで表現できる この行から間違えてるだろ
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/22(日) 17:21:49.94 .net] >>200 こいうんじゃね? というのを期待してた?残念w
217 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/23(月) 20:28:21 .net] >>212 while IFS=, read は思いつくけど 最後まで空読みってどんな処理なのか気になっただけ
218 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/03/24(火) 21:32:10 .net] >>197 >>> str = "foobarbaz" >>> print(str[3]) b python3は重いかわりに色々便利なのが定義されてる
219 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/04(土) 22:32:04.93 ID:gwOVmDRaJ] 未経験から半年でフリーエンジニアになれる人の特徴 https://www.youtube.com/watch?v=YCxu0jn52Qw フリーランスか会社員かどっちが簡単かについての最終回答 https://www.youtube.com/watch?v=JA4JNSmIdxI 【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて https://www.youtube.com/watch?v=fTG-eMpwhCg 月収1000万円オンラインサロンオーナーの日常【飲み過ぎ】 https://www.youtube.com/watch?v=lPfWZLatYus&t=107s 借金400万円から人生逆転するまでの軌跡 https://www.youtube.com/watch?v=fXdHlFFUjGY エンジニアはお金を追求してはいけないという年寄りを論破してみた https://www.youtube.com/watch?v=qJHCmxFv718 プログラミングスクールを否定する老害どもについて https://www.youtube.com/watch?v=K2SN-Rr0PgY&t=506s 新人叩きしてる古参勢がすぐ儲からなくなる理由 https://www.youtube.com/watch?v=Ch9Ir8O-iqU&t=332s
220 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/11(土) 10:24:56 .net] タブで字下げされてるテキストファイルの中にある _TAG("S.T.A.R.T") が含まれる行と _TAG("E.N.D") が含まれる行との間にある行数を数えるにはどうすればいいでしょうか
221 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/11(土) 11:20:47.30 .net] ...... | sed -n '/_TAG("S.T.A.R.T")/,/_TAG("E.N.D")/p' | wc -l こんな感じ
222 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/12(日) 07:36:15.54 .net] さんくす sedやwcなどの外部コマンド?を使わない方法はありますか?
223 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/12(日) 07:43:15.09 .net] 宿題は自分でやろう
224 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/12(日) 13:13:39.28 .net] >>218 そういうことするなら perl5に行きなよ 普通はそれも最初から入ってて、文字処理に強い言語だから --- そんな処理だと、その処理の前に タグがネストしてたり、正しく対になっているのか調べれた方が安全 おみあげに類似したコードあげる https://ideone.com/XCz8Ou 対が壊れてたら -1 を 壊れてないならネストの最大の深さを返す
225 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/12(日) 17:00:27.78 .net] >>220 ダクネスが居たように見えた
226 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 19:58:42 .net] >>216 問題の意図が明確 その _TAG("S.T.A.R.T") とかは字下げされているのかどうなのか _TAG("S.T.A.R.T") が含まれてると言うが、 一行 は _TAG("S.T.A.R.T") だけではないのか? echo ' _TAG("S.T.A.R.T")' なんかも考慮する必要あるのか? 俺だったら一行まるまる、_TAG("S.T.A.R.T") だけにするがな その方がパースしやすいので
227 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 19:59:20 .net] あと _TAG("S.T.A.R.T") は複数あるのか?という質問も追加 ネストされている場合は考慮するのか?とか
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 20:01:47 .net] まあいずれにしろテキストファイルは read で読み込めるんだから こんな感じになるだろうが while IFS= read -r line; do case $line in '_TAG("S.T.A.R.T")') なんとか ;; '_TAG("E.N.D")') かんとか ;; esac if 条件; then count=$((count + 1)) fi done < テキストファイル
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 20:03:02 .net] >>220 みたいにそういう場合だったら Perl にとかいうやつがいるけど シェルスクリプトで同等のコードを書いても大差ないんだけどなw
230 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 21:07:49.84 .net] sedやwc使うなとかいう制約も謎だわ 言語やツールが何であれ
231 名前:給ヌ裏で似たようなライブラリの関数呼び出すのに [] [ここ壊れてます]
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 21:38:58 .net] 理由がわからないなら普通に聞けばいいだけなのに。 自分が知らないだけなのに、なんでそんなことありえない、 あってたまるかみたいな書き込みをするんだろうねw
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 22:33:21.03 .net] 理由がわからないんじゃなくて、そんなことを言い出す人間が理解できないって話だよ こだわりがあるならこんなところで人に聞くんじゃないよって話で
234 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 22:41:09.86 .net] 自分とは違う方針の質問は受け付けない そんなレスはこてんぱんにしてやる。ですか?
235 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/13(月) 23:40:18.71 .net] 自分の期待とは違う方針の回答は受け付けない そんなスレはこてんぱんにしてやる。じゃないの?
236 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 04:36:43 .net] >>229 スレの流れ見たけど受け付けられてるじゃん 宿題を済ませたいのか知らないが 人に聞くくらいなら針路変更したらどう? 知り合いにコンピューターの勉強してた人居るけど 大学で課題をすべて友人からパクってたそうだ 今その人バイトで食いつないでる ITの仕事できたら低くても年収400万は行ったろうにね
237 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 07:50:06 .net] >>231 知り合いの人は大学をやめて会社を起こして金持ちになったよ。 お前が何をいいたいのか知らんが
238 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 07:52:02 .net] >>230 さんくすとお礼を言った上に、条件をつけ忘れてたから 補足しただけでしょ たったそれだけで、はぁ?理解できない。謎だわ。なんでそんな事するの?バカなの? みたいに言うのはなんで?
239 名前:名無しさん@お腹いっぱい。 [2020/04/14(火) 08:10:41 .net] >>232 知り合いは宝くじ当たったよ 中卒、高卒、大卒の平均年収見てみ
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:12:21 .net] 問題を解決できないやつは 学歴がなんでも大成しないな
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:16:49 .net] 2chは口が悪いやつが多いけど ここ見てると分かるように無償で相手してくれるやつがいるんだな 現実はどうだろう そんなことないよ 社会に出れば分かるがフリーライダーは受け入れられない 街角でスケッチブックに助けてくださいって掲げるのか? そんなの通報されて終わるよ SNSなら答えてくれるって? フォロワーも居ない人の相手なんて誰もしない 要するに2chしか質問する先がないんだ
242 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:18:35 .net] >>233 何で逆切れするの? 仕事は自分でしましょう
243 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:24:13 .net] >>233 >>229 があなたの書き込みなら あなたが煽っただけでしょう そして>>229 があなたではないなら なぜそんな反応するのか分からない
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:26:10 .net] 課題か仕事か知らんが問題を片付けてくれたのになぜ素直になれないんだろうか 仕事だったら出来上がらないから検収されずに報酬もらえないぞ
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:29:48.56 .net] JavaHouseってのがあって明らかに仕事に関係するであろう質問してた輩に 運営者の人がそれ幾らなのって聞いてたな 聞いた本人は無料ですってなんか意味の分からんこと言ってたが
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 08:31:37.22 .net] >>234 宝くじワロタ
247 名前:名無しさん@お腹いっぱい。 [2020/04/14(火) 08:44:03.74 .net] >>232 それは単にその人が優秀だっただけ
248 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 09:06:13 .net] 課題をこなせず大学をやめて成功したって丸投げ派遣会社でも設立したんか
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 10:27:17.89 .net] >>242 人の話がシェルスクリプトと何の関係があるのという話だ 人の話をし始めたやつにいえな
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 11:48:50.47 .net] 宿題は自分でやりましょうってことだけじゃ
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 12:53:01 .net] >>245 全ての質問に対してそういう回答をしてるなら何も言わんよ
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 16:26:20 .net] >>232 まあ今どきの日本人はだいたいビル・ゲイツは知り合いだからなw
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 16:29:02 .net] >>246 でたでたw なぞの平等理論w あいつだけずるいとかいう妬みで周りが見えなくなってるんだろうなあ
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 16:51:38 .net] 自分なら質問者が 「今こうやってるけどもっと効率のいい方法ない?」 とか聞いてきたら答えてあげたくなる 一度答えてそーじゃねーよとか言われたら・・・w
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 17:19:48.25 .net] 一度答えてそーじゃねーよと言われたら? ↓これみて「そーじゃねーよ」言われたと思っちゃったの? 215 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2020/04/11(土) 11:20:47.30 ...... | sed -n '/_TAG("S.T.A.R.T")/,/_TAG("E.N.D")/p' | wc -l こんな感じ 216 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2020/04/12(日) 07:36:15.54 さんくす sedやwcなどの外部コマンド?を使わない方法はありますか?
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 17:20:54.13 .net] 沸点が低いんだろうなぁ。 少しでもなにか言われたら、親を侮辱されたかのように感じるんだろうな
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 17:27:27.07 .net] なんとなく答える前に sedやwcなどの外部コマンド?を使わない方法はありますか? と書いても、同じようにキレていそうな気がするなw
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 17:38:50 .net] 3連投かよw そんなに悔しかったのかよw
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 18:07:42.02 .net] レスしただけでこの反応w 矛先をずらしているのもありがちだなぁw
260 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/14(火) 23:33:18.21 .net] >>222-223 その _TAG("S.T.A.R.T") とかも字下げされてます echo ' _TAG("S.T.A.R.T")' なんかも考慮する必要はありません _TAG("S.T.A.R.T") は複数ありません ネストもありません >>224 可能ならman bashで出る内容だけで解決したいです。 _TAG("S.T.A.R.T")や_TAG("E.N.D")の前後にも行はあるので、わかりやすく _TAG("S.T.A.R.T")なんとか count=$((count + 1)) _TAG("E.N.D")かんとか ならベストなのですが。
261 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/15(水) 00:16:02.16 .net] >>255 while文で1行ずつ読んでSTART見つけたところからカウントしていってENDが見つかったら終了すりゃいいだけじゃないの 自分でどこまで作ったの?
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/15(水) 00:37:48.24 .net] >>256 もういいから早くスクリプト作れって言ってんだよ
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/15(水) 00:47:14.66 .net] >>257 なら今からman bash読むわ ちょっと量が多いから1週間待ってな 忘れるといかんからまたその頃に催促してくれ
264 名前:名無しさん@お腹いっぱい。 [2020/04/15(水) 08:44:47.78 .net] >>257 おまえ志賀だろ あわしろさんに謝れ
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/16(木) 00:36:27 .net] >>255 の後半からはawkのセンスありと見た
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/16(木) 07:29:49 .net] 自分で man 読んで自分で出来るようになる方が自分にとって有益だと思うんだが…
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/16(木) 12:09:07 .net] awkでやればできるよ!・・・全部BEGIN これ萎えるw
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/17(金) 09:28:05 .net] フレッシュなニンニクジュースを飲めばコロナの菌が死滅する
269 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/19(日) 04:34:10.20 .net] この板の住民なら生ニンニクで腸内細菌死滅して病院送りになるのは知ってそう
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/19(日) 04:48:20.74 .net] 言うほどUNIXやシェルスクリプトってコロナ菌に関係あるか?
271 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/19(日) 13:15:29 .net] [ と [[ の違いなんかも理解できてないままflgやcontinueを使って書いてみました。 _TAG("S.T.A.R.T")の後でもループの度にflgをチェックするのが無駄なので _TAG("S.T.A.R.T")を探すループと_TAG("E.N.D")まで行数を数えるループを完全に分けてflgを無くしスッキリ出来たらいいのですが。 declare -i i=0 declare -i flg=0 for f in `cat $INPUT_FILE` do if [ $flg == 0 ]; then if [[ "$f" =~ \t*'_TAG("S.T.A.R.T")' ]]; then flg=1 else continue fi else if [[ "$f" =~ \t*'_TAG("E.N.D")' ]]; then echo 行数は $i exit 0 else i=$i+1 fi fi done
272 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/19(日) 22:46:59.99 .net] >>266 > ループを完全に分けてflgを無くしスッキリ出来たらいいのですが。 まず for f in `cat $INPUT_FILE`を使うのはやめよう シェルスクリプトでテキストファイルを読むならwhile + read を使う そしてread は read してから read すると次の行を read する(当たり前だw)
273 名前:名無しさん@お腹いっぱい。 [2020/04/26(日) 02:43:28.05 .net] 一応それらしいのを書いてみました。 exitがあるのと、whileループの前と中にreadがあるのがちょっと不満です。 後チェックができるように do; read; while という使い方ができればいいのですが。 declare -i i=0 while : ; do read f <- 不要かも while [[ !("$f" =~ \t*'_TAG("S.T.A.R.T")') ]]; do read f done read f while [[ !("$f" =~ \t*'_TAG("E.N.D")') ]]; do i=$i+1 read f done echo 行数は $i exit done < $INPUT_FILE
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/26(日) 07:48:46 .net] そもそも done < $INPUT_FILE とか書く必要ない script.sh < $INPUT_FILE とやればいいんだよ その方が柔軟性が高くなる そうすりゃスクリプトは中身だけで良くなる。endはいらない。 そして while read do にも置き換えられるやろ? read f <- 不要かも while [[ !("$f" =~ \t*'_TAG("S.T.A.R.T")') ]]; do read f done read f while [[ !("$f" =~ \t*'_TAG("E.N.D")') ]]; do i=$i+1 read f done echo 行数は $i
275 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/26(日) 07:49:15 .net] × endはいらない。 ○ exitはいらない。
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/26(日) 13:23:56.84 .net] 後出しっぽくてすみません。 $INPUT_FILE は_TAG("S.T.A.R.T")や_TAG("E.N.D")と同じく固定名なので汎用性は不要なんです。 それにこの部分はscriptの一部で本体には引数があるため毎回script.sh 引数 < $INPUT_FILE とやるのはちょっと... といって、このためだけに分割するのも...
277 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/04/26(日) 16:11:10.53 .net] じゃあ { なかみ } < "$INPUT_FILE" とかすればいい
278 名前:名無しさん@お腹いっぱい。 [2020/10/27(火) 23:15:06.07 ID:oDaI72SOc] サイボウズ式:会社員でもフリーでもない、その中間ぐらいの生き方を模索しているところです https://www.huffingtonpost.jp/cybozu/careerpass_b_17142954.html?utm_hp_ref=jp-furiransu 「社員全員が副業」を体現し普及するスタートアップ、売上前年比4倍が物語る今後 https://newswitch.jp/p/23029 サイボウズの「副業したい人、採用します」戦略。正社員募集では見つからない“異能”の採り方 https://logmi.jp/business/articles/320834 10月より週休4日制度に移行します。 https://note.mu/soutaros/n/na788df21965b 「週休4日」や「1日5時間勤務」も可能に。アクセンチュアが、新たな勤務制度を取り入れた理由 https://www.huffingtonpost.jp/enhyouban/accenture_b_12796206.html フリーランスは増加した。でも「奴隷的」会社員の延長では社会は不自由なままだ。 https://www.huffingtonpost.jp/entry/freelance-basics_jp_5c988943e4b057f7330cb53a?utm_hp_ref=jp-hatarakikata 秩父・横瀬町にWeb業界のクリエイターが集結! 地域がひとつになったクリエイティブソン https://careerhack.en-japan.com/report/detail/813 自称「日本一の駅の待合所」はいったいドコがスゴいのか https://headlines.yahoo.co.jp/hl?a=20190425-00010004-moneyplus-bus_all 書店内の本が読み放題!新しいオフィス形態「BOOK&OFFICE 文悠」 https://headlines.yahoo.co.jp/article?a=20190424-00001676-shogyokai-bus_all 会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと https://www.businessinsider.jp/post-165731 フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か https://toyokeizai.net/articles/-/263055