シェルスクリプトの総合スレです。
□お約束
・特記なき場合は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 にまとめられています
最新の仕様はこちらへ http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」 から参照することができます。)
・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。
http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
(理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
manや参考リンクを見ましょう。
aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
「そういうのはperl使いましょう」と回答するのはやめましょう。
安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう
シェルスクリプト総合 その27
https://mevius.5ch.net/test/read.cgi/unix/1525337663/
探検
シェルスクリプト総合 その28
■ このスレッドは過去ログ倉庫に格納されています
2018/08/02(木) 05:22:16.82
2020/01/21(火) 11:46:33.77
>>168
それってパワーシェルの話?
それってパワーシェルの話?
2020/01/21(火) 21:58:33.32
そのメッセージでググっても、インストール時のメッセージしか見つからないね
https://www.google.com/search?q=%22ERROR%3A+You+must+either+be+root+or+be+able+to+use+sudo%22
ビルドしようとしたら出たって言うから、
別の話か、嘘つきでは?w
https://www.google.com/search?q=%22ERROR%3A+You+must+either+be+root+or+be+able+to+use+sudo%22
ビルドしようとしたら出たって言うから、
別の話か、嘘つきでは?w
2020/01/21(火) 22:20:06.48
>>168
エラーメッセージには「sudo を使え」と書いてあるが
エラーメッセージには「sudo を使え」と書いてあるが
2020/01/22(水) 02:27:49.96
とりあえず適当なことを言ってPowerShellを
貶めたかったんだろ?バレて逆効果になってるがw
貶めたかったんだろ?バレて逆効果になってるがw
2020/02/17(月) 09:08:53.72
grep 等の外部コマンド?を使わずに任意の文字列の最初に見つかる3桁の数字を得る方法があれば教えて下さい
(例えば、abc_4_de_99_fgh_ijklm_no_567_2_123_pqrst_uvwx_yz だと567)
(例えば、abc_4_de_99_fgh_ijklm_no_567_2_123_pqrst_uvwx_yz だと567)
2020/02/17(月) 12:51:47.30
bashなら=~と、$BASH_REMATCH使えばできるんじゃね
2020/02/17(月) 12:52:43.82
>>173
おまえは俺か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]}"}
おまえは俺か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]}"}
2020/02/17(月) 13:01:06.73
シェルスクリプトだと(bash依存は知らん)
マッチした部分を含めて削除はできるけど
マッチした部分を残したその他を削除が簡単にできないんだよね。
だから「マッチした部分を含めて削除」したら残りが
「マッチしなかった部分」になるのを利用して、
改めて全体から「マッチしなかった部分」を取り除くというのを前後でやればできる。
マッチした部分を含めて削除はできるけど
マッチした部分を残したその他を削除が簡単にできないんだよね。
だから「マッチした部分を含めて削除」したら残りが
「マッチしなかった部分」になるのを利用して、
改めて全体から「マッチしなかった部分」を取り除くというのを前後でやればできる。
2020/02/19(水) 01:25:53.44
ありがとうございます
面倒でも前後から不要部分を取り除くしかないのですね
面倒でも前後から不要部分を取り除くしかないのですね
2020/02/19(水) 03:44:34.80
「マッチした部分を含めて削除」ってどうやるの?
2020/02/19(水) 07:39:09.82
>>178
${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
${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
2020/02/19(水) 12:18:21.18
>>179
丁寧にありがとう!
丁寧にありがとう!
2020/02/21(金) 17:55:59.15
182名無しさん@お腹いっぱい。
2020/02/22(土) 16:29:53.08 それらをPowerShellで書くとどうなるか?
一度でも考えてみたことはありますか?
一度でも考えてみたことはありますか?
2020/02/22(土) 16:45:28.02
PowerShellで書くとLinuxで動かすのが大変になります。
2020/02/26(水) 03:34:54.75
5年くらいするとセキュリティパッチが出なくなって使用禁止になるから
また作り直しになるんだろうどうせ。
また作り直しになるんだろうどうせ。
2020/03/13(金) 23:32:50.67
例えば中身が
3,soba,inarizusi,hishimoti,ushioziru ...
のcsvファイルなら最初の数字が3なので以下の文字列の3番目をつないで soBa inArizusi hiShimoti usHioziru ... でbash ... というように
csvファイルの最初の値で以降の処理が変わる場合はどうすればいいでしょうか?
一度ファイルを最後まで空読みすれば簡単なのですが、読み込みは1度で終わらせたいです。
3,soba,inarizusi,hishimoti,ushioziru ...
のcsvファイルなら最初の数字が3なので以下の文字列の3番目をつないで soBa inArizusi hiShimoti usHioziru ... でbash ... というように
csvファイルの最初の値で以降の処理が変わる場合はどうすればいいでしょうか?
一度ファイルを最後まで空読みすれば簡単なのですが、読み込みは1度で終わらせたいです。
2020/03/14(土) 16:01:32.08
宿題は自分でやりなよ
187名無しさん@お腹いっぱい。
2020/03/14(土) 17:54:51.47 >>185
なんでそんな分かりづらい説明するんだ?
なんでそんな分かりづらい説明するんだ?
188名無しさん@お腹いっぱい。
2020/03/14(土) 17:55:37.96 全く意味がわからん。
誰か翻訳してくれ
誰か翻訳してくれ
2020/03/14(土) 18:20:44.65
>>185
引数で単語と数字nを受け取ってn文字目の単語を返す関数を書けばいいだけ
引数で単語と数字nを受け取ってn文字目の単語を返す関数を書けばいいだけ
2020/03/14(土) 18:34:21.42
>>189
日本語ではなくてbashでお願いします!!
日本語ではなくてbashでお願いします!!
2020/03/14(土) 18:41:35.26
>>188
結果だけ見たら
入力テキストをカンマで区切って
最初の数値を取得 ⇒ nとする
残りの文字列のn番目の文字をアッパーケースに変換して空白区切りで連結する
かな
俺ならテキストが小さいならBashで一気に読んで処理すればいいと思うしでかいならPythonとかで処理する
結果だけ見たら
入力テキストをカンマで区切って
最初の数値を取得 ⇒ nとする
残りの文字列のn番目の文字をアッパーケースに変換して空白区切りで連結する
かな
俺ならテキストが小さいならBashで一気に読んで処理すればいいと思うしでかいならPythonとかで処理する
192名無しさん@お腹いっぱい。
2020/03/14(土) 20:00:13.75 > 俺ならテキストが小さいならBashで一気に読んで処理すればいいと思うしでかいならPythonとかで処理する
これはなんで? 小さいとかの境目はどれくらい?
これはなんで? 小さいとかの境目はどれくらい?
2020/03/14(土) 20:15:35.44
そんなこと聞いてくるようではセンスがないよ
センスがない奴にいくら説明しても無駄
センスがない奴にいくら説明しても無駄
2020/03/14(土) 20:18:24.03
pythonだと単語のn文字目を取り出すなんて朝飯前だしな
関数書く手間が一つ省ける
関数書く手間が一つ省ける
2020/03/14(土) 20:24:34.26
疑問になった点は「テキストが小さいなら」です。
その他の話は聞いてません。
その他の話は聞いてません。
2020/03/14(土) 20:26:37.39
> pythonだと単語のn文字目を取り出すなんて朝飯前だしな
単語の3文字目(オフセット2から1文字)を取り出す
echo "${str:2:1}"
Pythonだとどう朝飯前なんですか?
単語の3文字目(オフセット2から1文字)を取り出す
echo "${str:2:1}"
Pythonだとどう朝飯前なんですか?
2020/03/14(土) 20:48:13.52
早く答えのスクリプトを書いてください!!
遅いですよ!!
遅いですよ!!
2020/03/14(土) 21:05:30.89
2020/03/14(土) 21:19:09.39
2020/03/14(土) 22:00:38.59
>>198
1MBってことは、1行256バイトとして4096行以下なら小さいってことですね。
10MBで約4万行、100MBで約40万行、1GBで400万行
昔のExcelの制限が1シート65000行だったことを考えると
エクセルで扱えるデータなら問題なさそうですね
1MBってことは、1行256バイトとして4096行以下なら小さいってことですね。
10MBで約4万行、100MBで約40万行、1GBで400万行
昔のExcelの制限が1シート65000行だったことを考えると
エクセルで扱えるデータなら問題なさそうですね
2020/03/14(土) 22:38:14.38
アスペかよw
アスペならちゃんと改行コードも数えるんだぞ?
アスペならちゃんと改行コードも数えるんだぞ?
2020/03/15(日) 13:40:07.33
2020/03/20(金) 18:13:05.78
185です。説明不足ですみません。
やりたいことは1行目を読み取り、2行目以降はそのままwhileループで最後まで読みたいのです。
ただそのためだけにフラグを使うのもなんだかなぁと。
やりたいことは1行目を読み取り、2行目以降はそのままwhileループで最後まで読みたいのです。
ただそのためだけにフラグを使うのもなんだかなぁと。
2020/03/20(金) 19:59:54.90
わざわざ空読みする理由が分かんねえ
今出来てる状態のスクリプト貼って何がうまく行かないのか説明してみ
今出来てる状態のスクリプト貼って何がうまく行かないのか説明してみ
2020/03/21(土) 00:02:26.75
#!/bin/sh
お願いします
お願いします
2020/03/21(土) 00:18:20.18
2020/03/21(土) 13:58:51.87
2020/03/21(土) 14:07:34.22
bash は重複しない4文字である。つまり2bitのデータと考えられる
日本語を1文字16bitのデータと考えると、
1文字をbashの4文字×8組=32個のデータで表現できる
つまりbashで質問すると32倍のデータが必要になる
1レスに2048バイト、1024文字を書き込めるから32文字の質問であれば
bashで質問することは可能
日本語を1文字16bitのデータと考えると、
1文字をbashの4文字×8組=32個のデータで表現できる
つまりbashで質問すると32倍のデータが必要になる
1レスに2048バイト、1024文字を書き込めるから32文字の質問であれば
bashで質問することは可能
2020/03/21(土) 15:26:35.50
向いてないんだろ
こういうの
こういうの
2020/03/22(日) 10:34:31.24
2020/03/22(日) 17:21:49.94
2020/03/23(月) 20:28:21.83
2020/03/24(火) 21:32:10.12
2020/04/11(土) 10:24:56.50
タブで字下げされてるテキストファイルの中にある
_TAG("S.T.A.R.T") が含まれる行と
_TAG("E.N.D") が含まれる行との間にある行数を数えるにはどうすればいいでしょうか
_TAG("S.T.A.R.T") が含まれる行と
_TAG("E.N.D") が含まれる行との間にある行数を数えるにはどうすればいいでしょうか
2020/04/11(土) 11:20:47.30
...... | sed -n '/_TAG("S.T.A.R.T")/,/_TAG("E.N.D")/p' | wc -l
こんな感じ
こんな感じ
2020/04/12(日) 07:36:15.54
さんくす
sedやwcなどの外部コマンド?を使わない方法はありますか?
sedやwcなどの外部コマンド?を使わない方法はありますか?
2020/04/12(日) 07:43:15.09
宿題は自分でやろう
2020/04/12(日) 13:13:39.28
>>216
そういうことするなら
perl5に行きなよ
普通はそれも最初から入ってて、文字処理に強い言語だから
---
そんな処理だと、その処理の前に
タグがネストしてたり、正しく対になっているのか調べれた方が安全
おみあげに類似したコードあげる
https://ideone.com/XCz8Ou
対が壊れてたら -1 を
壊れてないならネストの最大の深さを返す
そういうことするなら
perl5に行きなよ
普通はそれも最初から入ってて、文字処理に強い言語だから
---
そんな処理だと、その処理の前に
タグがネストしてたり、正しく対になっているのか調べれた方が安全
おみあげに類似したコードあげる
https://ideone.com/XCz8Ou
対が壊れてたら -1 を
壊れてないならネストの最大の深さを返す
2020/04/12(日) 17:00:27.78
>>218
ダクネスが居たように見えた
ダクネスが居たように見えた
2020/04/13(月) 19:58:42.58
>>214
問題の意図が明確
その _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") だけにするがな
その方がパースしやすいので
問題の意図が明確
その _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") だけにするがな
その方がパースしやすいので
2020/04/13(月) 19:59:20.04
あと _TAG("S.T.A.R.T") は複数あるのか?という質問も追加
ネストされている場合は考慮するのか?とか
ネストされている場合は考慮するのか?とか
2020/04/13(月) 20:01:47.27
まあいずれにしろテキストファイルは 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 < テキストファイル
こんな感じになるだろうが
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 < テキストファイル
2020/04/13(月) 20:03:02.16
>>218みたいにそういう場合だったら Perl にとかいうやつがいるけど
シェルスクリプトで同等のコードを書いても大差ないんだけどなw
シェルスクリプトで同等のコードを書いても大差ないんだけどなw
2020/04/13(月) 21:07:49.84
sedやwc使うなとかいう制約も謎だわ
言語やツールが何であれ結局裏で似たようなライブラリの関数呼び出すのに
言語やツールが何であれ結局裏で似たようなライブラリの関数呼び出すのに
2020/04/13(月) 21:38:58.14
理由がわからないなら普通に聞けばいいだけなのに。
自分が知らないだけなのに、なんでそんなことありえない、
あってたまるかみたいな書き込みをするんだろうねw
自分が知らないだけなのに、なんでそんなことありえない、
あってたまるかみたいな書き込みをするんだろうねw
2020/04/13(月) 22:33:21.03
理由がわからないんじゃなくて、そんなことを言い出す人間が理解できないって話だよ
こだわりがあるならこんなところで人に聞くんじゃないよって話で
こだわりがあるならこんなところで人に聞くんじゃないよって話で
2020/04/13(月) 22:41:09.86
自分とは違う方針の質問は受け付けない
そんなレスはこてんぱんにしてやる。ですか?
そんなレスはこてんぱんにしてやる。ですか?
2020/04/13(月) 23:40:18.71
自分の期待とは違う方針の回答は受け付けない
そんなスレはこてんぱんにしてやる。じゃないの?
そんなスレはこてんぱんにしてやる。じゃないの?
2020/04/14(火) 04:36:43.78
>>227
スレの流れ見たけど受け付けられてるじゃん
宿題を済ませたいのか知らないが
人に聞くくらいなら針路変更したらどう?
知り合いにコンピューターの勉強してた人居るけど
大学で課題をすべて友人からパクってたそうだ
今その人バイトで食いつないでる
ITの仕事できたら低くても年収400万は行ったろうにね
スレの流れ見たけど受け付けられてるじゃん
宿題を済ませたいのか知らないが
人に聞くくらいなら針路変更したらどう?
知り合いにコンピューターの勉強してた人居るけど
大学で課題をすべて友人からパクってたそうだ
今その人バイトで食いつないでる
ITの仕事できたら低くても年収400万は行ったろうにね
2020/04/14(火) 07:50:06.07
2020/04/14(火) 07:52:02.07
232名無しさん@お腹いっぱい。
2020/04/14(火) 08:10:41.322020/04/14(火) 08:12:21.45
問題を解決できないやつは
学歴がなんでも大成しないな
学歴がなんでも大成しないな
2020/04/14(火) 08:16:49.74
2chは口が悪いやつが多いけど
ここ見てると分かるように無償で相手してくれるやつがいるんだな
現実はどうだろう
そんなことないよ
社会に出れば分かるがフリーライダーは受け入れられない
街角でスケッチブックに助けてくださいって掲げるのか?
そんなの通報されて終わるよ
SNSなら答えてくれるって?
フォロワーも居ない人の相手なんて誰もしない
要するに2chしか質問する先がないんだ
ここ見てると分かるように無償で相手してくれるやつがいるんだな
現実はどうだろう
そんなことないよ
社会に出れば分かるがフリーライダーは受け入れられない
街角でスケッチブックに助けてくださいって掲げるのか?
そんなの通報されて終わるよ
SNSなら答えてくれるって?
フォロワーも居ない人の相手なんて誰もしない
要するに2chしか質問する先がないんだ
2020/04/14(火) 08:18:35.42
2020/04/14(火) 08:24:13.25
2020/04/14(火) 08:26:10.64
課題か仕事か知らんが問題を片付けてくれたのになぜ素直になれないんだろうか
仕事だったら出来上がらないから検収されずに報酬もらえないぞ
仕事だったら出来上がらないから検収されずに報酬もらえないぞ
2020/04/14(火) 08:29:48.56
JavaHouseってのがあって明らかに仕事に関係するであろう質問してた輩に
運営者の人がそれ幾らなのって聞いてたな
聞いた本人は無料ですってなんか意味の分からんこと言ってたが
運営者の人がそれ幾らなのって聞いてたな
聞いた本人は無料ですってなんか意味の分からんこと言ってたが
2020/04/14(火) 08:31:37.22
>>232
宝くじワロタ
宝くじワロタ
240名無しさん@お腹いっぱい。
2020/04/14(火) 08:44:03.74 >>230
それは単にその人が優秀だっただけ
それは単にその人が優秀だっただけ
2020/04/14(火) 09:06:13.53
課題をこなせず大学をやめて成功したって丸投げ派遣会社でも設立したんか
2020/04/14(火) 10:27:17.89
2020/04/14(火) 11:48:50.47
宿題は自分でやりましょうってことだけじゃ
2020/04/14(火) 12:53:01.03
>>243
全ての質問に対してそういう回答をしてるなら何も言わんよ
全ての質問に対してそういう回答をしてるなら何も言わんよ
2020/04/14(火) 16:26:20.38
>>230
まあ今どきの日本人はだいたいビル・ゲイツは知り合いだからなw
まあ今どきの日本人はだいたいビル・ゲイツは知り合いだからなw
2020/04/14(火) 16:29:02.33
2020/04/14(火) 16:51:38.83
自分なら質問者が
「今こうやってるけどもっと効率のいい方法ない?」
とか聞いてきたら答えてあげたくなる
一度答えてそーじゃねーよとか言われたら・・・w
「今こうやってるけどもっと効率のいい方法ない?」
とか聞いてきたら答えてあげたくなる
一度答えてそーじゃねーよとか言われたら・・・w
2020/04/14(火) 17:19:48.25
一度答えてそーじゃねーよと言われたら?
↓これみて「そーじゃねーよ」言われたと思っちゃったの?
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などの外部コマンド?を使わない方法はありますか?
↓これみて「そーじゃねーよ」言われたと思っちゃったの?
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などの外部コマンド?を使わない方法はありますか?
2020/04/14(火) 17:20:54.13
沸点が低いんだろうなぁ。
少しでもなにか言われたら、親を侮辱されたかのように感じるんだろうな
少しでもなにか言われたら、親を侮辱されたかのように感じるんだろうな
2020/04/14(火) 17:27:27.07
なんとなく答える前に
sedやwcなどの外部コマンド?を使わない方法はありますか?
と書いても、同じようにキレていそうな気がするなw
sedやwcなどの外部コマンド?を使わない方法はありますか?
と書いても、同じようにキレていそうな気がするなw
2020/04/14(火) 17:38:50.71
3連投かよw
そんなに悔しかったのかよw
そんなに悔しかったのかよw
2020/04/14(火) 18:07:42.02
レスしただけでこの反応w 矛先をずらしているのもありがちだなぁw
2020/04/14(火) 23:33:18.21
2020/04/15(水) 00:16:02.16
2020/04/15(水) 00:37:48.24
>>254
もういいから早くスクリプト作れって言ってんだよ
もういいから早くスクリプト作れって言ってんだよ
2020/04/15(水) 00:47:14.66
257名無しさん@お腹いっぱい。
2020/04/15(水) 08:44:47.782020/04/16(木) 00:36:27.10
>>253の後半からはawkのセンスありと見た
2020/04/16(木) 07:29:49.82
自分で man 読んで自分で出来るようになる方が自分にとって有益だと思うんだが…
2020/04/16(木) 12:09:07.65
awkでやればできるよ!・・・全部BEGIN
これ萎えるw
これ萎えるw
2020/04/17(金) 09:28:05.07
フレッシュなニンニクジュースを飲めばコロナの菌が死滅する
2020/04/19(日) 04:34:10.20
この板の住民なら生ニンニクで腸内細菌死滅して病院送りになるのは知ってそう
2020/04/19(日) 04:48:20.74
言うほどUNIXやシェルスクリプトってコロナ菌に関係あるか?
2020/04/19(日) 13:15:29.97
[ と [[ の違いなんかも理解できてないまま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
_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
2020/04/19(日) 22:46:59.99
>>264
> ループを完全に分けてflgを無くしスッキリ出来たらいいのですが。
まず for f in `cat $INPUT_FILE`を使うのはやめよう
シェルスクリプトでテキストファイルを読むならwhile + read を使う
そしてread は read してから read すると次の行を read する(当たり前だw)
> ループを完全に分けてflgを無くしスッキリ出来たらいいのですが。
まず for f in `cat $INPUT_FILE`を使うのはやめよう
シェルスクリプトでテキストファイルを読むならwhile + read を使う
そしてread は read してから read すると次の行を read する(当たり前だw)
266名無しさん@お腹いっぱい。
2020/04/26(日) 02:43:28.05 一応それらしいのを書いてみました。
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
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
2020/04/26(日) 07:48:46.75
そもそも 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
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
2020/04/26(日) 07:49:15.89
× endはいらない。
○ exitはいらない。
○ exitはいらない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】 山上徹也被告が謝罪 「何の恨みもありません。非常に申し訳ないことをした」 [お断り★]
- 高市早苗首相、人口減少問題で「地方は東京を見習って」発言に違和感 鳥取・平井知事、県議会で言及 [Hitzeschleier★]
- 中国外務省「絶対に受け入れない」改めて撤回求める 台湾有事めぐる高市総理の「政府の立場に変更なし」との答弁に対し [ぐれ★]
- NVIDIA幹部「日本、もうロボット大国ではない」 AIで一変 ★2 [少考さん★]
- 『M-1』決勝進出9組発表 エバース、ヤーレンズ、ヨネダ2000、ママタルト、真空ジェシカら進出 [muffin★]
- 芸人・永野が断言 令和が「1」なら昭和は「100楽しかった」「夢いっぱいだった」★2 [muffin★]
- 【実況】博衣こよりのえちえちMIMESIS🏴‍☠🐏🎪🧪★4
- かなたそ🪽に握りつぶされるお🏡
- 日本人、経済格差がどんどん拡大… 高所得者は牛肉の消費高く低所得はチキン [271912485]
- 高市早苗、人口減少問題で「地方は東京を見習って」 [935793931]
- セックスする方法教える
- メモリー(DDR5)16GB×2枚が9万4780円😱 [175344491]
