シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その31
https://mevius.5ch.net/test/read.cgi/tech/1565446670/
シェルスクリプト総合 その32
■ このスレッドは過去ログ倉庫に格納されています
2019/10/25(金) 00:08:45.53ID:6btPTvif
559デフォルトの名無しさん
2020/02/08(土) 22:01:26.95ID:EnngxFza importに名前空間を移動する印象があるのは同意だけど
sourceの「他のファイルに書いてるコードを実行する」ような印象はないな。
つーかsourceってシェル以外でみかけない。
名前空間とか高級な概念を無視する、単なる対象ファイルの実行・読み込みは
includeが一番「それっぽい」な。
C言語みたいなコンパイル方式でもm4・Xresourceみたいなインタプリタ・設定ファイル形式でも。
sourceの「他のファイルに書いてるコードを実行する」ような印象はないな。
つーかsourceってシェル以外でみかけない。
名前空間とか高級な概念を無視する、単なる対象ファイルの実行・読み込みは
includeが一番「それっぽい」な。
C言語みたいなコンパイル方式でもm4・Xresourceみたいなインタプリタ・設定ファイル形式でも。
560デフォルトの名無しさん
2020/02/08(土) 23:17:01.30ID:WgESEu8I sourceの本来の名前が . だとして、
/etc/profileとかに . /etc/bash.bashrc とか書いてあるでしょ?
これは関数定義等を読み込んでると言うより、
ただそこにあるスクリプトを実行してるという感じがしない?
/etc/profileとかに . /etc/bash.bashrc とか書いてあるでしょ?
これは関数定義等を読み込んでると言うより、
ただそこにあるスクリプトを実行してるという感じがしない?
561デフォルトの名無しさん
2020/02/08(土) 23:17:36.95ID:WgESEu8I そもそもなんで . (ドット)だったのかっていう疑問もあるけどw
562デフォルトの名無しさん
2020/02/09(日) 07:56:47.77ID:u8D56ofC >>560
ああ、いや、たしかにそうなんだけど、
sourceっていう名前の(または.(ドット)って名前の)コマンドや指令が
シェルスクリプト以外で見掛けないなと思ってさ。
じゃあシェルスクリプト以外の言語でsourceに最も近いはたらきをするのは
なにかって言えば、includeかなぁ。と。
ああ、いや、たしかにそうなんだけど、
sourceっていう名前の(または.(ドット)って名前の)コマンドや指令が
シェルスクリプト以外で見掛けないなと思ってさ。
じゃあシェルスクリプト以外の言語でsourceに最も近いはたらきをするのは
なにかって言えば、includeかなぁ。と。
563デフォルトの名無しさん
2020/02/09(日) 08:09:38.60ID:WtBEbY+3 includeで言えばC言語かなぁ
でもC言語のincludeはヘッダファイルの読み込みで
(今のC++はそうとは言えないが)
実行するものはなにもないものだったよね
.やsourceを他の言語で見たことがないのは同意
なんでこの単語を選んだのか。まあ当時はそういうことをするときの
標準的な単語はなく、includeやimportの方がたまたま有名になったってだけな気もするけど
includeってC/C++以外あったっけ?
でもC言語のincludeはヘッダファイルの読み込みで
(今のC++はそうとは言えないが)
実行するものはなにもないものだったよね
.やsourceを他の言語で見たことがないのは同意
なんでこの単語を選んだのか。まあ当時はそういうことをするときの
標準的な単語はなく、includeやimportの方がたまたま有名になったってだけな気もするけど
includeってC/C++以外あったっけ?
564デフォルトの名無しさん
2020/02/09(日) 08:12:52.16ID:WtBEbY+3 include, import, load, require, source
他に何があるかな?
他に何があるかな?
565デフォルトの名無しさん
2020/02/09(日) 08:15:45.81ID:WtBEbY+3 とういうか、その話をするためにきたんじゃなかったw
makeってどういう亜種があるの?
それぞれのOSでどこまで互換性があるの?
どこかにそういう情報まとまってないかな
makeってどういう亜種があるの?
それぞれのOSでどこまで互換性があるの?
どこかにそういう情報まとまってないかな
566デフォルトの名無しさん
2020/02/09(日) 08:19:42.30ID:WtBEbY+3 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
ここにPOSIXに関しては書いてあるけど、現実としてはどこまで互換性があるのかなと
つまり便利ないろんな機能(?が使いたいけど、ここには書いて無いようで
使っていいものなのかわからない
ここにPOSIXに関しては書いてあるけど、現実としてはどこまで互換性があるのかなと
つまり便利ないろんな機能(?が使いたいけど、ここには書いて無いようで
使っていいものなのかわからない
567デフォルトの名無しさん
2020/02/09(日) 08:26:03.00ID:WtBEbY+3 オライリーのGNU Make、無料で公開されてたヽ(=´▽`=)ノ
https://www.yokoweb.net/2016/08/28/gnu-make-3rd-pdf-github/
https://www.yokoweb.net/2016/08/28/gnu-make-3rd-pdf-github/
568デフォルトの名無しさん
2020/02/09(日) 08:40:31.63ID:WtBEbY+3 Makeについて調べていたら上のシバンの話、!の後にスペース入れれっていうのが見つかったでw
https://web.sfc.wide.ad.jp/~sagawa/gnujdoc/autoconf-2.59/autoconf-ja_10.html
> また,以 下のように,インタプリタ仕様として,感嘆符の後にスペースを含めてください.
>
> #! /usr/bin/perl
https://web.sfc.wide.ad.jp/~sagawa/gnujdoc/autoconf-2.59/autoconf-ja_10.html
> また,以 下のように,インタプリタ仕様として,感嘆符の後にスペースを含めてください.
>
> #! /usr/bin/perl
569デフォルトの名無しさん
2020/02/09(日) 08:41:08.32ID:WtBEbY+3 ここまでコピペするべきだった
> パスの前のスペースを省略する場合,(DYNIXのような)4.2BSDを基本 とするシステムは,
> `#! /'は4バイトのマジックナンバーとして解釈される ので,その行を無視します.
> 古いシステムでは,`#!'行の長さにも小さな 制限があり,例えばSunOS 4では,(改行を含めず)32バイトになります.
> パスの前のスペースを省略する場合,(DYNIXのような)4.2BSDを基本 とするシステムは,
> `#! /'は4バイトのマジックナンバーとして解釈される ので,その行を無視します.
> 古いシステムでは,`#!'行の長さにも小さな 制限があり,例えばSunOS 4では,(改行を含めず)32バイトになります.
570デフォルトの名無しさん
2020/02/09(日) 09:07:13.64ID:nPaz0f5T >>563
VBScript
VBScript
571デフォルトの名無しさん
2020/02/09(日) 10:20:28.40ID:gml78nRc >>569
それ間違っている
https://www.in-ulm.de/~mascheck/various/shebang/#blankrequired
>You may also read, that (allegedly) such a kernel parses "#! /" as a 32-bit (long) magic.
>4.2BSD in fact doesn't require it, although previous versions of the GNU autoconf tutorial wrongly claimed this ("10. Portable Shell Programming", corrected with release 2.64, 2009-07-26).
>But instead, see 4.2BSD, /usr/src/sys/sys/kern_exec.c (the first regular occurence). A blank is accepted but not required.
それ間違っている
https://www.in-ulm.de/~mascheck/various/shebang/#blankrequired
>You may also read, that (allegedly) such a kernel parses "#! /" as a 32-bit (long) magic.
>4.2BSD in fact doesn't require it, although previous versions of the GNU autoconf tutorial wrongly claimed this ("10. Portable Shell Programming", corrected with release 2.64, 2009-07-26).
>But instead, see 4.2BSD, /usr/src/sys/sys/kern_exec.c (the first regular occurence). A blank is accepted but not required.
572デフォルトの名無しさん
2020/02/09(日) 12:28:36.33ID:mw6BsSoR pgrepには検索文字数の制限があるのか?
573デフォルトの名無しさん
2020/02/09(日) 12:29:59.77ID:3rHefPWY そんなのあるのか? pgr
574デフォルトの名無しさん
2020/02/09(日) 13:26:52.28ID:u8D56ofC >>572
どこ情報?
どこ情報?
575デフォルトの名無しさん
2020/02/09(日) 14:04:29.38ID:Fnglc4p2 >>563
あなたはC言語がUNIXを作るために作られた言語だと知らないの?
あなたはC言語がUNIXを作るために作られた言語だと知らないの?
576デフォルトの名無しさん
2020/02/09(日) 14:07:08.39ID:Fnglc4p2 >>569
そもそもどのUNIX、Linuxの話をしているのか?
そもそもどのUNIX、Linuxの話をしているのか?
577デフォルトの名無しさん
2020/02/09(日) 14:20:04.33ID:QqkdphAP >>575
それがどう話につながるのか説明してくれ
それがどう話につながるのか説明してくれ
578デフォルトの名無しさん
2020/02/09(日) 14:57:41.05ID:RDxzsaY4 shellはUNIX上でのいちプログラム、UNIXはCで作られてる。shellだってCで(途中から?)作られていただろう。故に、
>当時はそういうことをするときの標準的な単語はなく、includeやimportの方がたまたま有名になった
ということはなく、同じならinclude使うんじゃねってとこかな?なんか違うから違うのにしたという方が読みやすいかなあ
shell scriptはPrologの構文が元じゃなかったっけ。ちょっとググったとこでは、
:-
か。なんかこれに似てるといえば似てるな . は
>当時はそういうことをするときの標準的な単語はなく、includeやimportの方がたまたま有名になった
ということはなく、同じならinclude使うんじゃねってとこかな?なんか違うから違うのにしたという方が読みやすいかなあ
shell scriptはPrologの構文が元じゃなかったっけ。ちょっとググったとこでは、
:-
か。なんかこれに似てるといえば似てるな . は
579デフォルトの名無しさん
2020/02/09(日) 15:11:26.44ID:Fnglc4p2 >>577
先に存在しているC言語とは別の考えで設計されている。カリフォルニア大学のバークレー校の複数人が考えたものだから、統一感がないのは仕方ない。
先に存在しているC言語とは別の考えで設計されている。カリフォルニア大学のバークレー校の複数人が考えたものだから、統一感がないのは仕方ない。
580デフォルトの名無しさん
2020/02/09(日) 15:48:09.09ID:mPwdKOvO581デフォルトの名無しさん
2020/02/09(日) 16:48:41.40ID:RDxzsaY4582デフォルトの名無しさん
2020/02/09(日) 16:50:22.96ID:u8D56ofC for a in XXX; do
somecmd...
done
↑ここのXXXの大きさについて、SUSやらで文書化された制限ってある?
もしあるとすればどう調べればいいかな。
XXXは引数じゃないからARG_MAXとかじゃないし、
もしかしたら実質無制限?(システムのメモリに依存とか?)
somecmd...
done
↑ここのXXXの大きさについて、SUSやらで文書化された制限ってある?
もしあるとすればどう調べればいいかな。
XXXは引数じゃないからARG_MAXとかじゃないし、
もしかしたら実質無制限?(システムのメモリに依存とか?)
583デフォルトの名無しさん
2020/02/09(日) 19:33:12.64ID:wmQivLfL ksh 2020がでたのは知ってるけどkshに一体何が起きてるんです?
20年以上の開発がゴミクズとして消えるんですか?
Rewinding this repo and encouraging community
https://github.com/att/ast/issues/1466
20年以上の開発がゴミクズとして消えるんですか?
Rewinding this repo and encouraging community
https://github.com/att/ast/issues/1466
584デフォルトの名無しさん
2020/02/10(月) 00:06:22.74ID:jvWR6fCp https://github.com/att/ast/tree/ksh2020
This branch is not supported
This branch contains the ksh2020 version of the AST tools, from January 2020,
which primarily written and maintained by @krader1961 and @siteshwar.
This branch is not supported or maintained by AT&T; the repo at
https://github.com/att/ast only officially hosts ksh93u+ and the experimental ksh93v- branch.
See #1464 and #1466 for discussion and history of this decision.
Please search for forks of this repo if you are looking for ksh2020.
This branch is not supported
This branch contains the ksh2020 version of the AST tools, from January 2020,
which primarily written and maintained by @krader1961 and @siteshwar.
This branch is not supported or maintained by AT&T; the repo at
https://github.com/att/ast only officially hosts ksh93u+ and the experimental ksh93v- branch.
See #1464 and #1466 for discussion and history of this decision.
Please search for forks of this repo if you are looking for ksh2020.
585デフォルトの名無しさん
2020/02/10(月) 00:08:02.47ID:jvWR6fCp https://github.com/att/ast/issues/1466
私はAT&T Labs Research で@lkoutsofiosと協力し、コミュニティが
快適な状態にレポを復元できるかどうかを確認するためにボランティアで参加しました。これは最後に#1464で議論されました。
私はkshや技術的な問題の専門家ではなく、歴史全体を知りませんが、私の理解は
1. ksh93u +は、AT&Tからの最終的な公式リリースです。これはブランチ2012-08-01-masterにあります
2. 後のバージョンであるksh93v-は、AT&Tを離れた後に元の作者によって提供されましたが、
このバージョンは安定しているとは見なされません。これはタグksh93vで見つけることができます
3. @ krader1961はmasterブランチを数年間維持しています。彼はコードベースを合理化しようとしました
(そしてastの残りではなくkshのみをサポートしました)が、これは互換性の問題を引き起こしました。
kshの元の作者はすべてAT&Tを去りました。社内にはまだ多くのユーザーがいますが、
プロジェクトを維持および管理できるユーザーはいません。
私はAT&T Labs Research で@lkoutsofiosと協力し、コミュニティが
快適な状態にレポを復元できるかどうかを確認するためにボランティアで参加しました。これは最後に#1464で議論されました。
私はkshや技術的な問題の専門家ではなく、歴史全体を知りませんが、私の理解は
1. ksh93u +は、AT&Tからの最終的な公式リリースです。これはブランチ2012-08-01-masterにあります
2. 後のバージョンであるksh93v-は、AT&Tを離れた後に元の作者によって提供されましたが、
このバージョンは安定しているとは見なされません。これはタグksh93vで見つけることができます
3. @ krader1961はmasterブランチを数年間維持しています。彼はコードベースを合理化しようとしました
(そしてastの残りではなくkshのみをサポートしました)が、これは互換性の問題を引き起こしました。
kshの元の作者はすべてAT&Tを去りました。社内にはまだ多くのユーザーがいますが、
プロジェクトを維持および管理できるユーザーはいません。
586デフォルトの名無しさん
2020/02/10(月) 00:11:44.63ID:jvWR6fCp 私の提案は:
・ 現在のマスターをブランチ「ksh2020」(または適切なもの)に移動します。
・そのブランチのREADME.mdおよびCHANGELOG.mdをメンテナンスされていないものとして
明確にマークします。#1464をポイントし、詳細についてはこの問題を参照してください。
・ マスターブランチを2012-08-01-masterにリセットします
・リポジトリから外部の共同編集者を削除します。AT&Tの誰もこれを維持していないので、
このフォークをアクティブなものにすることは意味がありません。GitとGithubを使用すると、
誰でも自分のスペースで好きな方向にコードを取得できます。
・ 現在のマスターをブランチ「ksh2020」(または適切なもの)に移動します。
・そのブランチのREADME.mdおよびCHANGELOG.mdをメンテナンスされていないものとして
明確にマークします。#1464をポイントし、詳細についてはこの問題を参照してください。
・ マスターブランチを2012-08-01-masterにリセットします
・リポジトリから外部の共同編集者を削除します。AT&Tの誰もこれを維持していないので、
このフォークをアクティブなものにすることは意味がありません。GitとGithubを使用すると、
誰でも自分のスペースで好きな方向にコードを取得できます。
587デフォルトの名無しさん
2020/02/10(月) 00:12:00.37ID:jvWR6fCp ・ README.mdをクリーンアップして、現在の状態を反映します。「このレポには、ASTの
AT&T ksh93u +および試験的なksh93v-バージョンが含まれます。ASTおよびkshのフォークは
後である可能性があります。」
・ CONTRIBUTING.mdを変更し、テンプレートを明確にして、このフォークを
積極的に維持しておらず、何も確認しないことを約束します。
・リポジトリの説明を「AST-AT&T Software Technology」に短縮します(#1441)
これが完了したら、AT&Tでmasterブランチのksh93u +にパッチを提供する可能性があります。
些細なこと(ビルドの問題など)でない限り、貢献を確認したり受け入れたりすることはおそらくないでしょう。
最終的には、このリポジトリをアーカイブします。
現在、会社の誰もがkshのためだけにレポを作成するつもりはないと思います。
しかし、これはかなり簡単で、コミュニティが取り上げることができると思います。
AT&T ksh93u +および試験的なksh93v-バージョンが含まれます。ASTおよびkshのフォークは
後である可能性があります。」
・ CONTRIBUTING.mdを変更し、テンプレートを明確にして、このフォークを
積極的に維持しておらず、何も確認しないことを約束します。
・リポジトリの説明を「AST-AT&T Software Technology」に短縮します(#1441)
これが完了したら、AT&Tでmasterブランチのksh93u +にパッチを提供する可能性があります。
些細なこと(ビルドの問題など)でない限り、貢献を確認したり受け入れたりすることはおそらくないでしょう。
最終的には、このリポジトリをアーカイブします。
現在、会社の誰もがkshのためだけにレポを作成するつもりはないと思います。
しかし、これはかなり簡単で、コミュニティが取り上げることができると思います。
588デフォルトの名無しさん
2020/02/10(月) 00:27:01.24ID:jvWR6fCp こういうこと?
1. AST-AT&T Software Technologyはkshだけのプロジェクトではない。kshはASTプロジェクトの一部
2. 誰かがkshだけをメンテナンスしていた。ASTプロジェクト全体をメンテナンスしてる人はいない
3. 今リリースされてるksh 2020はそれ
4. ksh 2020 は後方互換性がなく古いスクリプトが動かなくなっていた
5. それは困るのでmasterを2012-08-01-masterにリセットしてアーカイブする
6. AT&Tはこのリポジトリをメンテナンスしない。 誰か開発したいのなら、ksh2020ブランチから続きをやれ
7. ksh2020ブランチにはもうメンテナンスしてないって書いてあるからそれ消してから勝手に続きをやれ
1. AST-AT&T Software Technologyはkshだけのプロジェクトではない。kshはASTプロジェクトの一部
2. 誰かがkshだけをメンテナンスしていた。ASTプロジェクト全体をメンテナンスしてる人はいない
3. 今リリースされてるksh 2020はそれ
4. ksh 2020 は後方互換性がなく古いスクリプトが動かなくなっていた
5. それは困るのでmasterを2012-08-01-masterにリセットしてアーカイブする
6. AT&Tはこのリポジトリをメンテナンスしない。 誰か開発したいのなら、ksh2020ブランチから続きをやれ
7. ksh2020ブランチにはもうメンテナンスしてないって書いてあるからそれ消してから勝手に続きをやれ
589デフォルトの名無しさん
2020/02/10(月) 08:02:14.12ID:RPv+4ALj Google翻訳使うなとは言わないけど,わざわざそれをスレに載せるな。
せめて自分で訳したものならともかく,なんの情報でもない。
せめて自分で訳したものならともかく,なんの情報でもない。
590デフォルトの名無しさん
2020/02/10(月) 08:09:49.99ID:jvWR6fCp え?翻訳すらしないでコピペすることだってあるじゃん
そういうのを引用っていうんだよ。
引用したらだめってこと?意味がわからないなぁ
そういうのを引用っていうんだよ。
引用したらだめってこと?意味がわからないなぁ
591デフォルトの名無しさん
2020/02/10(月) 11:18:22.31ID:RPv+4ALj >>590
飛躍しすぎ。
スレと関係ないただの忠告になるからこれ以上言わんが、
引用するななんて一言も言ってないし,ただの引用のほうがよほどマシ。
ていうかGoogle翻訳したものを貼り付けて「引用」って……
あなたはGoogle翻訳(機械翻訳全般)を信じてるのかも知れないけれども,
2020年現在,これらの翻訳の質は,あなたが貼り付けた文章を見ても分かる通り,酷いもの。
半分「嘘っぱち」の文章が出てると言っても過言じゃない。
特に,機械翻訳の中でも,minhonやlibtr8nとは違って,Google翻訳は2018年ころから
「学習した英語・日本語訳文からそれっぽい文字の並びを引っ張ってくる」っていう手法を取るようになったから
「見てくれは他の機械翻訳より自然≠セけど内容が全くデタラメ」っていう最悪の事態を生み出すようになってしまった。
幸か不幸か,あなたが貼り付けた文章にそこまで酷い誤謬はないけど,上述の翻訳手法である以上,
Google翻訳した文書を貼り付けるのは,原文を貼り付けるより酷いばかりか,
何も情報を提供せずに各自がリンク先なんかで情報を確認するよう要求するほうがよほどマシなくらい。
あなたは悪気なくGoogle翻訳を使って,スレに貢献しようとしたのかもしれない。
リンク先の文書の内重要と思われる部分をスレ本体に引用することは悪いことじゃないけれど,
そこでGoogle翻訳を使ってしまうのは,ちょっとキツい言い方になるけど「嘘を教える」ことに繋がってきてしまう。
もしこれからリンク先の文章を引用する機会があれば,原文を貼り付けるか,下手でもいいから自分で翻訳してみてね。
飛躍しすぎ。
スレと関係ないただの忠告になるからこれ以上言わんが、
引用するななんて一言も言ってないし,ただの引用のほうがよほどマシ。
ていうかGoogle翻訳したものを貼り付けて「引用」って……
あなたはGoogle翻訳(機械翻訳全般)を信じてるのかも知れないけれども,
2020年現在,これらの翻訳の質は,あなたが貼り付けた文章を見ても分かる通り,酷いもの。
半分「嘘っぱち」の文章が出てると言っても過言じゃない。
特に,機械翻訳の中でも,minhonやlibtr8nとは違って,Google翻訳は2018年ころから
「学習した英語・日本語訳文からそれっぽい文字の並びを引っ張ってくる」っていう手法を取るようになったから
「見てくれは他の機械翻訳より自然≠セけど内容が全くデタラメ」っていう最悪の事態を生み出すようになってしまった。
幸か不幸か,あなたが貼り付けた文章にそこまで酷い誤謬はないけど,上述の翻訳手法である以上,
Google翻訳した文書を貼り付けるのは,原文を貼り付けるより酷いばかりか,
何も情報を提供せずに各自がリンク先なんかで情報を確認するよう要求するほうがよほどマシなくらい。
あなたは悪気なくGoogle翻訳を使って,スレに貢献しようとしたのかもしれない。
リンク先の文書の内重要と思われる部分をスレ本体に引用することは悪いことじゃないけれど,
そこでGoogle翻訳を使ってしまうのは,ちょっとキツい言い方になるけど「嘘を教える」ことに繋がってきてしまう。
もしこれからリンク先の文章を引用する機会があれば,原文を貼り付けるか,下手でもいいから自分で翻訳してみてね。
592デフォルトの名無しさん
2020/02/10(月) 11:56:29.56ID:jvWR6fCp >>591
はは、的外れすぎてワロタw
英語をそのまま貼ってもリンク先読まない人が多いから
単に変換しただけ。英語というだけでスルーする
日本語ならぱっと見でわかる。内容が気になったのならリンク先読みなさい。
読んだのなら貼り付けた意味があったということ
はは、的外れすぎてワロタw
英語をそのまま貼ってもリンク先読まない人が多いから
単に変換しただけ。英語というだけでスルーする
日本語ならぱっと見でわかる。内容が気になったのならリンク先読みなさい。
読んだのなら貼り付けた意味があったということ
593デフォルトの名無しさん
2020/02/10(月) 19:24:20.30ID:SWS6qR4K 宮城県に住んでるだったかの誰かにそっくりだな
594デフォルトの名無しさん
2020/02/10(月) 19:51:47.28ID:RPv+4ALj595デフォルトの名無しさん
2020/02/10(月) 21:25:40.41ID:MJVq5TQy596デフォルトの名無しさん
2020/02/10(月) 21:40:51.77ID:4n8TqQDg 擁護賛同してるのか?あそこの初っ端は間違っているけどな
直してやれよ
直してやれよ
597デフォルトの名無しさん
2020/02/12(水) 17:16:49.73ID:SPYER+lN コマンドの速度を測りたいときに出力を/dev/nullに捨てるとその影響で
出力を捨てないときより速く計測されてしまうことがあるんだけど
例:
$ time { < /usr/bin/od od -A nx -t x1 -v; }
...
出力略
...
real 0m0.055s
user 0m0.042s
sys 0m0.008s
$
$ time { < /usr/bin/od od -A nx -t x1 -v > /dev/null; }
real 0m0.020s
user 0m0.020s
sys 0m0.000s
これを防ぐために「端末上に書き出してるのと同じくらいの負荷が書かるけど、実際には端末上に出力されない」
みたいな状況を作りたい。
おしえてください。
出力を捨てないときより速く計測されてしまうことがあるんだけど
例:
$ time { < /usr/bin/od od -A nx -t x1 -v; }
...
出力略
...
real 0m0.055s
user 0m0.042s
sys 0m0.008s
$
$ time { < /usr/bin/od od -A nx -t x1 -v > /dev/null; }
real 0m0.020s
user 0m0.020s
sys 0m0.000s
これを防ぐために「端末上に書き出してるのと同じくらいの負荷が書かるけど、実際には端末上に出力されない」
みたいな状況を作りたい。
おしえてください。
598デフォルトの名無しさん
2020/02/12(水) 17:58:00.53ID:44kLfG7j pv 使うとか
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time { < /usr/bin/od od -A nx -t x1 -v; }
:
real 0m0.404s
user 0m0.024s
sys 0m0.005s
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time { < /usr/bin/od od -A nx -t x1 -v | pv -q -L2M > /dev/null; }
real 0m0.458s
user 0m0.019s
sys 0m0.007s
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time { < /usr/bin/od od -A nx -t x1 -v; }
:
real 0m0.404s
user 0m0.024s
sys 0m0.005s
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time { < /usr/bin/od od -A nx -t x1 -v | pv -q -L2M > /dev/null; }
real 0m0.458s
user 0m0.019s
sys 0m0.007s
599デフォルトの名無しさん
2020/02/12(水) 21:18:18.55ID:ngmZ90wk600597
2020/02/13(木) 19:02:20.33ID:qpgEIAWv601デフォルトの名無しさん
2020/02/13(木) 19:45:08.54ID:d+A9Zjku 標準出力バッファを無効にして/dev/nullに送り込むと良いかも。知らんけど
602デフォルトの名無しさん
2020/02/15(土) 07:57:33.28ID:TqNhf8oX ていうかtimeで測った絶対速度なんてほとんど信用できなくて、(ハードウェアの状態なんかに依存するから)
使い道としては複数のコマンドどうしの相対速度の比較が主でしょう。
ならば、両方とも> /dev/nullに捨てておけば、相対速度としては変化しないから速度比較の目的は果たせるのでは。
使い道としては複数のコマンドどうしの相対速度の比較が主でしょう。
ならば、両方とも> /dev/nullに捨てておけば、相対速度としては変化しないから速度比較の目的は果たせるのでは。
603デフォルトの名無しさん
2020/02/15(土) 09:41:54.81ID:LBGCL7FY リダイレクトとfdは概ね理解したけど3以上はどう使えばいいんです?
1>や2>は自然と使い分けてるけど1>&3を使う機会なくて
&>の方がまだ出番ある
1>や2>は自然と使い分けてるけど1>&3を使う機会なくて
&>の方がまだ出番ある
604デフォルトの名無しさん
2020/02/15(土) 11:02:57.91ID:vIJrSTGq >>603
スクリプト開始時の stdout や stderr を保存しておくのに使うぐらいかなあ
# stdout を fd=3 にコピー
exec 3>&1
# fd=1,2 を foo.log にリダイレクト
exec > foo.log 2>&1
echo "foo.log に途中経過出力中です..." >&3
...
echo "処理B開始" >&3
...
echo "終了しました" >&3
スクリプト開始時の stdout や stderr を保存しておくのに使うぐらいかなあ
# stdout を fd=3 にコピー
exec 3>&1
# fd=1,2 を foo.log にリダイレクト
exec > foo.log 2>&1
echo "foo.log に途中経過出力中です..." >&3
...
echo "処理B開始" >&3
...
echo "終了しました" >&3
605デフォルトの名無しさん
2020/02/15(土) 13:14:38.75ID:QAGa8Flq bashの問題なのか知らんけど、
CRとかLFとかTABとかVTとかをどう解釈するかって
制御するフラグってあったりする?OSがらみの設定でもいいけど
CRとかLFとかTABとかVTとかをどう解釈するかって
制御するフラグってあったりする?OSがらみの設定でもいいけど
606デフォルトの名無しさん
2020/02/15(土) 14:59:47.10ID:7hJxIdg7607デフォルトの名無しさん
2020/02/15(土) 17:24:25.12ID:LBGCL7FY608デフォルトの名無しさん
2020/02/15(土) 22:02:17.95ID:7TGox9oB >>606
sttyコマンドなのかな?
詳細は言えないけど、"予め構築された特定の環境"のみおかしくなる
(どうやって構築されたかは公開されてない)
それと近いと思われる環境を自分で作っても再現できなくて困っている。
evalやコマンド置換と改行やタブ含めたホワイトスペースに属する文字を
使ったときにおかしくなってるのはわかるんだが
どうやったらこんな状況を作れるんだろうか。なぞだ。
sttyコマンドなのかな?
詳細は言えないけど、"予め構築された特定の環境"のみおかしくなる
(どうやって構築されたかは公開されてない)
それと近いと思われる環境を自分で作っても再現できなくて困っている。
evalやコマンド置換と改行やタブ含めたホワイトスペースに属する文字を
使ったときにおかしくなってるのはわかるんだが
どうやったらこんな状況を作れるんだろうか。なぞだ。
609デフォルトの名無しさん
2020/02/15(土) 23:22:52.25ID:FhP/kA+H 頭悪い奴ってのは、おかしくなったとかエラーになったとかいうだけで、
どうなったのかメッセージはなんなのか、そこを書かないのは何でだぜ
おかしいのはシステムじゃなくておまえの頭だろうという
どうなったのかメッセージはなんなのか、そこを書かないのは何でだぜ
おかしいのはシステムじゃなくておまえの頭だろうという
610デフォルトの名無しさん
2020/02/15(土) 23:28:09.90ID:7TGox9oB evalするときに何故か構文エラーが起きたり
ホワイトスペースがどこかで消えたりしている。
ホワイトスペースがどこかで消えたりしている。
611デフォルトの名無しさん
2020/02/15(土) 23:28:21.51ID:2teiXV5j >詳細は言えないけど
なんだろ。単なるチラ裏なことを長々とというだけの
対処する側なのにその前置きでエスパー求めるなんてありえないし
なんだろ。単なるチラ裏なことを長々とというだけの
対処する側なのにその前置きでエスパー求めるなんてありえないし
612デフォルトの名無しさん
2020/02/15(土) 23:28:41.71ID:7TGox9oB もちろんその環境以外ではそんな事は起きていない。
だから制御する方法があるのだろうと思ってるがわからない。
だから制御する方法があるのだろうと思ってるがわからない。
613デフォルトの名無しさん
2020/02/15(土) 23:31:04.26ID:2teiXV5j614デフォルトの名無しさん
2020/02/15(土) 23:31:40.17ID:7TGox9oB >>613
具体的に書くとまずいことがあるからわざとぼやかしてる
具体的に書くとまずいことがあるからわざとぼやかしてる
615デフォルトの名無しさん
2020/02/15(土) 23:32:15.43ID:2teiXV5j だったら、チラ裏なげえな
616デフォルトの名無しさん
2020/02/15(土) 23:33:17.78ID:7TGox9oB 短くしたら、お前が俺にレスさせるようにしただけ。
最初に詳細は言えないって書いてるんだから察しろ
最初に詳細は言えないって書いてるんだから察しろ
617デフォルトの名無しさん
2020/02/15(土) 23:36:08.92ID:2teiXV5j618デフォルトの名無しさん
2020/02/15(土) 23:38:36.70ID:7TGox9oB619デフォルトの名無しさん
2020/02/15(土) 23:40:02.90ID:2teiXV5j620デフォルトの名無しさん
2020/02/15(土) 23:50:22.01ID:7TGox9oB621デフォルトの名無しさん
2020/02/15(土) 23:52:28.65ID:cPtDrAlk /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
622デフォルトの名無しさん
2020/02/15(土) 23:53:21.82ID:2teiXV5j 何を言っているのかなあ。意味不明すぎ
読めなさすぎだろう、独りよがりすぎだろう
読めなさすぎだろう、独りよがりすぎだろう
623デフォルトの名無しさん
2020/02/15(土) 23:57:25.05ID:7TGox9oB 理解能力がないという告白を見た瞬間w
624デフォルトの名無しさん
2020/02/16(日) 00:03:10.55ID:0ownCpNF >>609をみて、「頭悪いやつ〜おかしいのは〜お前の頭だろう」というのは言い過ぎだろう、わからないでもないけどw
てか「詳細は言えないけど」てあるやん、まあ、そういうことだろう。チラ裏だけどなw
ということで、611を書いた
そしたら、直前同時に610があった(それが609に反応してのなんて当たり前だろう。逆になんでそうじゃないと思うのか意味不明すぎ)
なんだかな、またふわっとしたことを。なので、613を書いた(アンカー付けるてるのはそゆことだよ)
そしたらならなんか616があったりしたが、まあ前後してたんだよ。そんなの当たり前にあるだろうに
>>623
お前は本当に自分視点しかなさすぎだぞ、マジでw
てか「詳細は言えないけど」てあるやん、まあ、そういうことだろう。チラ裏だけどなw
ということで、611を書いた
そしたら、直前同時に610があった(それが609に反応してのなんて当たり前だろう。逆になんでそうじゃないと思うのか意味不明すぎ)
なんだかな、またふわっとしたことを。なので、613を書いた(アンカー付けるてるのはそゆことだよ)
そしたらならなんか616があったりしたが、まあ前後してたんだよ。そんなの当たり前にあるだろうに
>>623
お前は本当に自分視点しかなさすぎだぞ、マジでw
625デフォルトの名無しさん
2020/02/16(日) 00:06:52.88ID:0ownCpNF 誤 そしたらならなんか616があったりしたが
正 そしたらならなんか612があったりしたが
正 そしたらならなんか612があったりしたが
626デフォルトの名無しさん
2020/02/16(日) 09:10:15.42ID:xg4O4sK0 sort -kについて正しく分かり易いサイトはないですか?
627デフォルトの名無しさん
2020/02/16(日) 12:16:49.32ID:O89bDljg628デフォルトの名無しさん
2020/02/16(日) 12:17:20.39ID:k2/UeE1A えいごなのでわかりやすくないです
629デフォルトの名無しさん
2020/02/16(日) 12:50:45.03ID:tUbalZD+630デフォルトの名無しさん
2020/02/16(日) 13:15:28.05ID:U5VJnWmt >>627
中国語の解説をご所望だそうだ
中国語の解説をご所望だそうだ
631デフォルトの名無しさん
2020/02/16(日) 14:38:33.35ID:O89bDljg おめーらイジワルだなw
632デフォルトの名無しさん
2020/02/16(日) 15:33:45.11ID:iNVxJNOu633デフォルトの名無しさん
2020/02/17(月) 08:01:59.15ID:ZjAffcZp 与えられた数字のファイルの行番号になにかを書き込むスクリプトってどう書くのが一番いいですかね。
一応 今 思い付いてるのは
与数をNNN,書き込む文字列をXXXとして
sed -n -e 'NNNs/.*/XXX/p'
↑こういうのかなと思ったんだけど
これだと新規ファイルを作成する目的には使えない…
一応 今 思い付いてるのは
与数をNNN,書き込む文字列をXXXとして
sed -n -e 'NNNs/.*/XXX/p'
↑こういうのかなと思ったんだけど
これだと新規ファイルを作成する目的には使えない…
634デフォルトの名無しさん
2020/02/17(月) 10:14:55.01ID:LO6gJc6j nl使えばいいだろ。POSIX標準の基本コマンド一覧見ろや
635デフォルトの名無しさん
2020/02/17(月) 10:37:47.88ID:ZjAffcZp >>634
nlにそんな機能あるの?
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/nl.html
↑ここ見る限り
指定した行になにかを書き込むなんていう機能なさそうなんだけど。
nlにそんな機能あるの?
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/nl.html
↑ここ見る限り
指定した行になにかを書き込むなんていう機能なさそうなんだけど。
636デフォルトの名無しさん
2020/02/17(月) 10:47:12.51ID:8g99SQEJ こういう事?
seq 10 | sed '5s/.*/& Here/'
seq 10 | sed '5s/.*/& Here/'
637デフォルトの名無しさん
2020/02/17(月) 11:12:00.77ID:ZjAffcZp638デフォルトの名無しさん
2020/02/17(月) 14:40:41.78ID:xPbhxlpI 配列に書いて要素番号と共に出力すれば
639デフォルトの名無しさん
2020/02/17(月) 14:53:39.21ID:qj5C8HtX おまえらよく
与えられた数字のファイルの行番号になにかを書き込むスクリプト
で何がいいたいのかわかるな
与えられた 数字のファイル の行番号なのか
与えられた数字 のファイルの行番号なのか
与えられた数字のファイル の行番号なのか
与えられた数字のファイルの行番号 なのか
さっぱりなんだがw
入力と出力の例を出せば、すぐに解決する問題だろうに
与えられた数字のファイルの行番号になにかを書き込むスクリプト
で何がいいたいのかわかるな
与えられた 数字のファイル の行番号なのか
与えられた数字 のファイルの行番号なのか
与えられた数字のファイル の行番号なのか
与えられた数字のファイルの行番号 なのか
さっぱりなんだがw
入力と出力の例を出せば、すぐに解決する問題だろうに
640デフォルトの名無しさん
2020/02/17(月) 14:56:06.69ID:qj5C8HtX > やりたいのは全部で何行必要か分からない状態で
> 次々に指定した行に文字列を書き込むってこと。
これもさっぱり
何行必要かわからないって、何の行数なのか
次々に指定した行って、どうやって指定するつもりなのか
示したスクリプトは別に10行という前提じゃなくても機能するし
元のファイルがないって、元のファイルってどのファイルだよ?
なければ作ればいいだけだろ?
> 次々に指定した行に文字列を書き込むってこと。
これもさっぱり
何行必要かわからないって、何の行数なのか
次々に指定した行って、どうやって指定するつもりなのか
示したスクリプトは別に10行という前提じゃなくても機能するし
元のファイルがないって、元のファイルってどのファイルだよ?
なければ作ればいいだけだろ?
641デフォルトの名無しさん
2020/02/17(月) 15:06:30.32ID:y136Nw0W 行ごとに何か処理したいならawkの出番なのでは?
642デフォルトの名無しさん
2020/02/17(月) 15:42:52.76ID:ZjAffcZp >>639
入力
linenumber=78
value='hoge huga'
linenumber=805
value='foo bar'
...
↓
出力
(空行)...
(78行目)hoge huga
(空行)...
(80行目)foo bar
こんな感じっすね。
入力は(この例では)変数に格納するような形式にしましたが
別にこれと決まった訳じゃないです。
入力
linenumber=78
value='hoge huga'
linenumber=805
value='foo bar'
...
↓
出力
(空行)...
(78行目)hoge huga
(空行)...
(80行目)foo bar
こんな感じっすね。
入力は(この例では)変数に格納するような形式にしましたが
別にこれと決まった訳じゃないです。
643デフォルトの名無しさん
2020/02/17(月) 15:45:24.56ID:ZjAffcZp >>641
うーん。それはまあ,sedでもawkでも同じことが言えますけど
どちらも既存のファイル(またはパイプ越しの既存の出力)に対しての行処理
が得意なんですよね。
一方いまやりたいことはファイルの新規作成であって
しかも最後まで行の総数が分からないという……
これはawkでどうにかするのは難しいのではと思います。
うーん。それはまあ,sedでもawkでも同じことが言えますけど
どちらも既存のファイル(またはパイプ越しの既存の出力)に対しての行処理
が得意なんですよね。
一方いまやりたいことはファイルの新規作成であって
しかも最後まで行の総数が分からないという……
これはawkでどうにかするのは難しいのではと思います。
644デフォルトの名無しさん
2020/02/17(月) 15:49:37.43ID:qj5C8HtX 行番号と文字列のペアが入ったデータ(ファイル)があって、
それに従って別のファイルの指定された行の頭に文字列を入れるってことね
ん?別のファイルの行の頭に文字列を入れるのか?
それとも単に、その出力通りに出すだけなのか?
その出力を作るだけなら簡単だろうけど・・・あーいやどちらも大差ないかw
それに従って別のファイルの指定された行の頭に文字列を入れるってことね
ん?別のファイルの行の頭に文字列を入れるのか?
それとも単に、その出力通りに出すだけなのか?
その出力を作るだけなら簡単だろうけど・・・あーいやどちらも大差ないかw
645デフォルトの名無しさん
2020/02/17(月) 15:50:05.60ID:P9Oy3OK5 先に行指定の最大値を取得すればええやろ?
646デフォルトの名無しさん
2020/02/17(月) 15:54:20.48ID:y136Nw0W それならもう無理せずperl,ruby,pythonあたりで書いたらいいんでないの?
647デフォルトの名無しさん
2020/02/17(月) 16:01:09.81ID:qj5C8HtX 入力ファイル形式を
78 hoge hug
805 foo bar
とする。行番号は小さい順に並んでいるものとする。
並んでいないならsortコマンドで並び替えられるのでどうでもいい
あとは、こんな感じのスクリプトを書いて
i=1
while read -r num string; do
while [ $i -lt "$num" ]; do
echo
i=$((i+1))
done
echo $string
i=$((i+1))
done
cat data.txt | script.sh とかすればいい
echoで空行出す所は、seqとかprintf '%s' "$@"とか使えば短くできるだろうな。
78 hoge hug
805 foo bar
とする。行番号は小さい順に並んでいるものとする。
並んでいないならsortコマンドで並び替えられるのでどうでもいい
あとは、こんな感じのスクリプトを書いて
i=1
while read -r num string; do
while [ $i -lt "$num" ]; do
echo
i=$((i+1))
done
echo $string
i=$((i+1))
done
cat data.txt | script.sh とかすればいい
echoで空行出す所は、seqとかprintf '%s' "$@"とか使えば短くできるだろうな。
648デフォルトの名無しさん
2020/02/17(月) 16:15:26.16ID:qj5C8HtX649デフォルトの名無しさん
2020/02/17(月) 16:25:32.91ID:qj5C8HtX 短くしてみた。バグとかはしらん
i=1 num=0
while [ "$i" -le "$num" ] || read -r num string; do
[ "$i" -eq "$num" ] && echo "$string" || echo " "
i=$((i+1))
done
i=1 num=0
while [ "$i" -le "$num" ] || read -r num string; do
[ "$i" -eq "$num" ] && echo "$string" || echo " "
i=$((i+1))
done
650デフォルトの名無しさん
2020/02/17(月) 16:31:22.20ID:2IQo7lRr >>637
どういうことをしたいのかよくわからんが、とりあえずtouchしておけばファイルは作れるんでないの?
どういうことをしたいのかよくわからんが、とりあえずtouchしておけばファイルは作れるんでないの?
651デフォルトの名無しさん
2020/02/17(月) 18:55:51.30ID:P9Oy3OK5 一旦配列に入れてからjoin風に出力
入力はsortされてなくても可
#! /usr/bin/env bash
while read -r num string; do
array[num]="$string"
done
index=( "${!array[@]}" )
for (( i=1; i<=${index[-1]}; i++)); do
if [ -v array["$i"] ];then
echo "${array[$i]}"
else
echo
fi
done
入力はsortされてなくても可
#! /usr/bin/env bash
while read -r num string; do
array[num]="$string"
done
index=( "${!array[@]}" )
for (( i=1; i<=${index[-1]}; i++)); do
if [ -v array["$i"] ];then
echo "${array[$i]}"
else
echo
fi
done
652デフォルトの名無しさん
2020/02/17(月) 21:12:48.06ID:ZjAffcZp >>650
いや,ただたんに新規作成したい訳じゃない…
いや,ただたんに新規作成したい訳じゃない…
653デフォルトの名無しさん
2020/02/18(火) 03:26:33.92ID:enVFBik2 Ruby で作った
以下のコードを、script.rb に保存して、
「ruby script.rb 行番号指定ファイル 入力ファイル」と実行する
ARGV[ 0 ] は、行番号指定ファイル
ARGV[ 1 ] は、入力ファイル
結果は、標準出力に出したので、ファイルへリダイレクトして下さい。
ただし、入力ファイルへはリダイレクトしないように!
行番号指定ファイルは「数字・半角空白・文字列」の順番です。
ただし、行は数字でソートされていること
3 あ い
7 ab
# 行番号指定ファイルを、[ 行番号, 文字列 ] の、2次元配列に読み込む。
# 1行ずつ処理する。末尾の改行を削除する
line_num_ary = File.foreach( ARGV[ 0 ], chomp: true ).with_object( [ ] ) do |line, ary|
tmp_ary = line.split( nil, 2 ) # 空白で、2つに分割する
tmp_ary[ 0 ] = Integer( tmp_ary[ 0 ], 10 ) # 数値型に変換する
ary.push tmp_ary
end
次へ続く
以下のコードを、script.rb に保存して、
「ruby script.rb 行番号指定ファイル 入力ファイル」と実行する
ARGV[ 0 ] は、行番号指定ファイル
ARGV[ 1 ] は、入力ファイル
結果は、標準出力に出したので、ファイルへリダイレクトして下さい。
ただし、入力ファイルへはリダイレクトしないように!
行番号指定ファイルは「数字・半角空白・文字列」の順番です。
ただし、行は数字でソートされていること
3 あ い
7 ab
# 行番号指定ファイルを、[ 行番号, 文字列 ] の、2次元配列に読み込む。
# 1行ずつ処理する。末尾の改行を削除する
line_num_ary = File.foreach( ARGV[ 0 ], chomp: true ).with_object( [ ] ) do |line, ary|
tmp_ary = line.split( nil, 2 ) # 空白で、2つに分割する
tmp_ary[ 0 ] = Integer( tmp_ary[ 0 ], 10 ) # 数値型に変換する
ary.push tmp_ary
end
次へ続く
654653
2020/02/18(火) 03:27:41.15ID:enVFBik2 last_line_num = line_num_ary.last[ 0 ] # 最後の行番号
line_count = nil # ファイルの行数
if FileTest.file? ARGV[ 1 ] # 入力ファイルがあれば
open( ARGV[ 1 ] ) do |f|
while f.gets; end # ファイルを最後まで読む
line_count = f.lineno # ファイルの行数
end
# 最後の行番号の方が、入力ファイルの行数よりも大きい場合は、空行を追加して、同じ行数にする
if last_line_num > line_count
open( ARGV[ 1 ], "a" ) do |f| # 追記
( last_line_num - line_count ).times { f.puts }
end
end
else # 入力ファイルが無ければ、最後の行番号の数だけ、空行を挿入する
open( ARGV[ 1 ], "w" ) do |f| # 書き込み
last_line_num.times { f.puts }
end
end
# 末尾の改行を削除して、配列に読み込む
input_ary = File.readlines( ARGV[ 1 ], chomp: true )
# 行番号で指定された行の、内容を置き換える
line_num_ary.each { |ary| input_ary[ ary[ 0 ] - 1 ] = ary[ 1 ] }
puts input_ary
line_count = nil # ファイルの行数
if FileTest.file? ARGV[ 1 ] # 入力ファイルがあれば
open( ARGV[ 1 ] ) do |f|
while f.gets; end # ファイルを最後まで読む
line_count = f.lineno # ファイルの行数
end
# 最後の行番号の方が、入力ファイルの行数よりも大きい場合は、空行を追加して、同じ行数にする
if last_line_num > line_count
open( ARGV[ 1 ], "a" ) do |f| # 追記
( last_line_num - line_count ).times { f.puts }
end
end
else # 入力ファイルが無ければ、最後の行番号の数だけ、空行を挿入する
open( ARGV[ 1 ], "w" ) do |f| # 書き込み
last_line_num.times { f.puts }
end
end
# 末尾の改行を削除して、配列に読み込む
input_ary = File.readlines( ARGV[ 1 ], chomp: true )
# 行番号で指定された行の、内容を置き換える
line_num_ary.each { |ary| input_ary[ ary[ 0 ] - 1 ] = ary[ 1 ] }
puts input_ary
655デフォルトの名無しさん
2020/02/18(火) 03:35:49.66ID:dYxIHNEw >>649
これが一番だな。短くてbash依存なし。ruby依存なしw
これが一番だな。短くてbash依存なし。ruby依存なしw
656デフォルトの名無しさん
2020/02/18(火) 09:24:28.92ID:2AC9Ct1n いや、それちょっとした文字列操作したくなった時点で相当めんどくさくなるだろ。。
てきとーなスクリプト言語使う方が正解だわ。
シェルで書くことに意固地になってるだけだろ。
てきとーなスクリプト言語使う方が正解だわ。
シェルで書くことに意固地になってるだけだろ。
657デフォルトの名無しさん
2020/02/18(火) 09:30:40.26ID:HqsHcaRa 別にならんだろ。まああれだ、シェル芸しかできなくて
シェルプログラミングできないやつが
ごまかすために言ってるんだろうなと
シェルプログラミングできないやつが
ごまかすために言ってるんだろうなと
658デフォルトの名無しさん
2020/02/18(火) 09:53:00.13ID:2AC9Ct1n あ、普通に馬鹿なんだな。。
もしかしてユニケージの人か?
もしかしてユニケージの人か?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… ★2 [BFU★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★3 [ごまカンパチ★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★3 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★5 [Ailuropoda melanoleuca★]
- 【ネット民のツッコミ】立憲・野田代表の「事実上の撤回」発言がトレンド、「高市さんそんな事は言ってない」「流石に無理あるだろw」 [1ゲットロボ★]
- 首相答弁「スパイ防止法、外国代理人登録法、ロビー活動公開法などについて速やかに法案を策定する」 [1ゲットロボ★]
- 鈴木農水大臣の無能さは異常 こいつ何なの?😠🌾🍙 [363226198]
- まったりまったりおじゃる丸待機スレ🏡
- 中国外務省「全く不十分だ。ごまかすような手口を使うべきではない」高市答弁を批判 [834922174]
- 香港マンションやばくね?1000人くらい死んでそう [546716239]
- ラブホ市長辞めちゃうのか
- ヤンジャン新人漫画大賞、入賞作品のAI絵疑惑で大荒れ😄😄😄 高市早苗要素あり [175344491]
