シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その34
https://mevius.5ch.net/test/read.cgi/tech/1597990675/
探検
シェルスクリプト総合 その35
■ このスレッドは過去ログ倉庫に格納されています
2020/11/24(火) 21:37:20.06ID:mbTiTj6s
645デフォルトの名無しさん
2021/01/05(火) 19:06:42.36ID:jvx2si/E ルビキチもポジキチも元気いいなここは
仕事ないのか?
仕事ないのか?
646デフォルトの名無しさん
2021/01/05(火) 19:09:44.19ID:PtcuBhf4 ルビキチはしばらく見ないなw
ルビキチに悪影響されての ID:2z9IJIZ8 の流れがちょっとアレだったな
ルビキチに悪影響されての ID:2z9IJIZ8 の流れがちょっとアレだったな
647デフォルトの名無しさん
2021/01/05(火) 19:20:26.75ID:DKe92MJE >>635
find * -type d -prune | paste -sd, | sed 's/,/, /g'
find * -type d -prune | paste -sd, | sed 's/,/, /g'
648デフォルトの名無しさん
2021/01/05(火) 20:34:41.59ID:Wb+d8sf0649デフォルトの名無しさん
2021/01/05(火) 21:40:03.20ID:hjkGjz+Y650デフォルトの名無しさん
2021/01/06(水) 11:24:52.43ID:8PExJP/x >>635
\ls -md */ | sed 's:/::g'
\ls -md */ | sed 's:/::g'
651デフォルトの名無しさん
2021/01/06(水) 12:16:54.19ID:mYe0Yhh2 >>650
こんなオプションあったんだな
こんなオプションあったんだな
652デフォルトの名無しさん
2021/01/06(水) 12:42:11.33ID:m96KWhfY653デフォルトの名無しさん
2021/01/06(水) 18:32:25.02ID:BIuq+YWk POSIX 注意報発令
654デフォルトの名無しさん
2021/01/06(水) 20:25:24.32ID:Y7FOu5Ta POSIXじゃないからダメです
655デフォルトの名無しさん
2021/01/06(水) 20:47:11.09ID:HZIFnr+X つーか俺は誰かと違ってPOSIXじゃないからだめなんて言ってないんだけどな
POSIXシェルではどうやればいいかって話をしてるだけで、ウェブアプリとか
シェルスクリプトには向かない作業にRubyやPythonなどの他の言語を使うのは当たり前
もちろんawkも使って構わないが、ただしそれはawk言語であってシェルスクリプトではないとは言うけどなw
何十年も動かしたいプログラムに、何十年も変化しない言語を使うのはまだ理解できるが
そもそも何十年も動かしたいという顧客の要求がなく、むしろ新しい機能の追加や修正を
行い続けるようなものに開発しづらいシェルスクリプトを使うのは馬鹿げてる
POSIXシェルではどうやればいいかって話をしてるだけで、ウェブアプリとか
シェルスクリプトには向かない作業にRubyやPythonなどの他の言語を使うのは当たり前
もちろんawkも使って構わないが、ただしそれはawk言語であってシェルスクリプトではないとは言うけどなw
何十年も動かしたいプログラムに、何十年も変化しない言語を使うのはまだ理解できるが
そもそも何十年も動かしたいという顧客の要求がなく、むしろ新しい機能の追加や修正を
行い続けるようなものに開発しづらいシェルスクリプトを使うのは馬鹿げてる
656デフォルトの名無しさん
2021/01/06(水) 21:16:29.90ID:D/BvDb1X っていうか,
「PythonやRubyはPOSIX Cで作られてるからPOSIX!」
っていう理論,いや1億歩譲ってそれを認めたとして,
このスレのタイトルを1億回読み直してほしいw
つまり結局,このスレで「POSIXが〜」と限定した場合に言及すべき範囲は
POSIXが(唯一)定めているShell Command Languageおよび(Shell) Utilitiyなんだよな。
「PythonやRubyはPOSIX Cで作られてるからPOSIX!」
っていう理論,いや1億歩譲ってそれを認めたとして,
このスレのタイトルを1億回読み直してほしいw
つまり結局,このスレで「POSIXが〜」と限定した場合に言及すべき範囲は
POSIXが(唯一)定めているShell Command Languageおよび(Shell) Utilitiyなんだよな。
657デフォルトの名無しさん
2021/01/06(水) 22:10:20.61ID:hZlCYb+O > 「PythonやRubyはPOSIX Cで作られてるからPOSIX!」
そんな主張してないぞ
POSIX原理主義がPOSIXシェルスクリプトをメインに開発する!
→でも○○無理じゃん
→シェルスクリプトで書くのは必須じゃない。交換可能可能性があれば使ってもOK!
→(交換可能可能性とか後付作っただろ・・・)
その理屈だと、C言語は交換可能性があるからOKだとして、
C言語で誰かがが作った(例えばユニケージの)独自コマンドは交換可能性がないからNGですよね?
そしてPythonやRubyもJythonやJRubyといった交換可能性があるからPOSIXじゃなくてもOKですね
こういう話ね
そんな主張してないぞ
POSIX原理主義がPOSIXシェルスクリプトをメインに開発する!
→でも○○無理じゃん
→シェルスクリプトで書くのは必須じゃない。交換可能可能性があれば使ってもOK!
→(交換可能可能性とか後付作っただろ・・・)
その理屈だと、C言語は交換可能性があるからOKだとして、
C言語で誰かがが作った(例えばユニケージの)独自コマンドは交換可能性がないからNGですよね?
そしてPythonやRubyもJythonやJRubyといった交換可能性があるからPOSIXじゃなくてもOKですね
こういう話ね
658デフォルトの名無しさん
2021/01/07(木) 00:13:36.72ID:X7rGsxbJ659デフォルトの名無しさん
2021/01/11(月) 01:02:14.08ID:Nxf8SjHi それで標準ライブラリは極力使わないって話にどうしてなるのか
意味不明なのは変わらないな
意味不明なのは変わらないな
660デフォルトの名無しさん
2021/01/11(月) 01:04:15.45ID:Nxf8SjHi 誤爆
661デフォルトの名無しさん
2021/01/11(月) 12:59:18.59ID:MB0taG6M どんな環境でも動くものを作れるここの先輩方は
LinuxだけでなくMacも込で動くように作られますか?
LinuxだけでなくMacも込で動くように作られますか?
662デフォルトの名無しさん
2021/01/11(月) 14:08:49.23ID:4YPmzemp LinuxでもMacでも動かしたくなるようなもので
普通に作れるようなものであれば作ってるよ
普通に作れないものっていうのは
例えば、systemdを使うものとかファイアウォール設定を変えるとか
Linuxの環境じゃないと意味がないようなもののことね
普通に作れるようなものであれば作ってるよ
普通に作れないものっていうのは
例えば、systemdを使うものとかファイアウォール設定を変えるとか
Linuxの環境じゃないと意味がないようなもののことね
663デフォルトの名無しさん
2021/01/11(月) 20:09:51.00ID:1GKY+oky >>661
ポジキチではないけど,
MacはUNIX v7に準拠してるし,
Linuxは正式に準拠してはいないけどほぼPOSIXに従ってるから,
POSIXの範囲でシェルスクリプトを書いておけば
MacでもLinuxでも動く。
まあそれに「意味があるのか」というのは別の話。
(Goプログラマが「Goで書けどこでも動く!」とか言ってるのと
似たようなもん)
ポジキチではないけど,
MacはUNIX v7に準拠してるし,
Linuxは正式に準拠してはいないけどほぼPOSIXに従ってるから,
POSIXの範囲でシェルスクリプトを書いておけば
MacでもLinuxでも動く。
まあそれに「意味があるのか」というのは別の話。
(Goプログラマが「Goで書けどこでも動く!」とか言ってるのと
似たようなもん)
664デフォルトの名無しさん
2021/01/11(月) 20:36:44.96ID:3OvUQiSB ここに書き込む人は大概Linux前提でGNUのツールが前提になってるから
MacにもGNUのツールをどんどん入れれば大丈夫と言う考え方はある
逆に言えばGNU原理主義なのかもしれんがw
MacにもGNUのツールをどんどん入れれば大丈夫と言う考え方はある
逆に言えばGNU原理主義なのかもしれんがw
665デフォルトの名無しさん
2021/01/11(月) 20:36:59.01ID:k6EkwuyV どれだけ意味があるかって、複数のOS使ってるなら意味有るでしょ?
666デフォルトの名無しさん
2021/01/11(月) 20:39:06.55ID:k6EkwuyV >>664
それはそうなんだけど、Macの場合、結局、フリーソフト使って実現なんだよね
ああ、GNUがフリーソフトだろっていう話じゃなくて
macOSが公式に対応してるわけじゃないって意味ね。
macOSが公式に対応してないからOSのアップデートで動かなかったりする
それはそうなんだけど、Macの場合、結局、フリーソフト使って実現なんだよね
ああ、GNUがフリーソフトだろっていう話じゃなくて
macOSが公式に対応してるわけじゃないって意味ね。
macOSが公式に対応してないからOSのアップデートで動かなかったりする
667デフォルトの名無しさん
2021/01/11(月) 21:18:03.54ID:iHOPiDVy668デフォルトの名無しさん
2021/01/11(月) 22:14:22.97ID:TgqHKx3G >>664
macosってコードベース的には90%くらいfreebsdのはずだが、gnuは徹底排除抹殺思想のfreebsdとしてどんな気持ちなんだろ…
もちろんライセンス的にクリアしてるんだろうが
まあmacは持ってないんだが(シェル含め)スクリプト写経用に人からコピーさせてもらった、まんじゃろ、とか言ってた頃?
blobじゃないファイルのコメントにfreebsd記載率9割
macosってコードベース的には90%くらいfreebsdのはずだが、gnuは徹底排除抹殺思想のfreebsdとしてどんな気持ちなんだろ…
もちろんライセンス的にクリアしてるんだろうが
まあmacは持ってないんだが(シェル含め)スクリプト写経用に人からコピーさせてもらった、まんじゃろ、とか言ってた頃?
blobじゃないファイルのコメントにfreebsd記載率9割
669デフォルトの名無しさん
2021/01/11(月) 22:19:33.52ID:TgqHKx3G というかbsd使いは規格とか気にしてない人が多そう(尖った人という偏見)
そもそもコミュニティが小さいので気にするまでもないってのもある
規格を異様に気にするのは、環境が千差万別なlinuxユーザでしょ
そもそもコミュニティが小さいので気にするまでもないってのもある
規格を異様に気にするのは、環境が千差万別なlinuxユーザでしょ
670デフォルトの名無しさん
2021/01/12(火) 02:54:46.84ID:hnOFIrYF >macosってコードベース的には90%くらいfreebsdのはず
>まあmacは持ってないんだが
他も無知ゆえの妄想ばかりだな
mac持ってなくても調べればわかるのを調べもしないでのでタチが悪い無知
>まあmacは持ってないんだが
他も無知ゆえの妄想ばかりだな
mac持ってなくても調べればわかるのを調べもしないでのでタチが悪い無知
671デフォルトの名無しさん
2021/01/12(火) 03:08:52.49ID:TSfQlcFo usrとかbinとかgrep(と-v)してみりゃそうだって分かるだろ、バイナリ部分は公開してない以上分からんとしか言えん
672デフォルトの名無しさん
2021/01/12(火) 03:23:26.83ID:hnOFIrYF 「コードベース」とか範囲が広すぎだろう。バイナリ部分ってなんやねん
単にコマンド(大体はPOSIXにあるコマンド)って話なのか?
単にコマンド(大体はPOSIXにあるコマンド)って話なのか?
673デフォルトの名無しさん
2021/01/12(火) 04:20:31.55ID:4wlpPo5A674デフォルトの名無しさん
2021/01/12(火) 05:28:57.54ID:hnOFIrYF お前の独特の言語言葉なんて知らんわ
usr bin にあるバイナリを調べろと言ってるのか。ちょっとは自分で調べてあんなこと言ってるのかと思ったら、全くなのな
てことは単にコマンドのことを言ってるだけか。コードベースwとか独特の言葉を使うなよ
それなりにオープンソースで公開されてるんだから少しは調べようとしろよ、語るwなら
妄想で語るだけのに さすが信者 とか言われたくないわw
usr bin にあるバイナリを調べろと言ってるのか。ちょっとは自分で調べてあんなこと言ってるのかと思ったら、全くなのな
てことは単にコマンドのことを言ってるだけか。コードベースwとか独特の言葉を使うなよ
それなりにオープンソースで公開されてるんだから少しは調べようとしろよ、語るwなら
妄想で語るだけのに さすが信者 とか言われたくないわw
675デフォルトの名無しさん
2021/01/12(火) 06:11:57.28ID:eUCbLjlC 勝手に
les, bus - ATM LAN Emulation service demons
というのが入っているけど、何これ
les, bus - ATM LAN Emulation service demons
というのが入っているけど、何これ
676デフォルトの名無しさん
2021/01/12(火) 23:03:02.65ID:ESpMy2tV >>675
Virus🦠
Virus🦠
677デフォルトの名無しさん
2021/01/14(木) 09:56:27.47ID:s2FPIYdL なんか面白いテクニックが某所で紹介されてるな
#!/usr/bin/echo This script is supposed to be sourced like this: .
まあ、macだと/bin/echoだったりするわけだが
#!/usr/bin/echo This script is supposed to be sourced like this: .
まあ、macだと/bin/echoだったりするわけだが
678デフォルトの名無しさん
2021/01/14(木) 12:42:21.34ID:tanA3fVT a="A" b="B" みたいな文字列を渡したら
a変数にA、b変数のBみたいに代入する方法ないかな?
ただし脆弱性が怖いんで、 a="$(cmd)" みたいなものは
そのままa変数に$(cmd)という文字列が入る
そしてスペースとかダブルクォート入れたかったら
a='A " A' とか a="A \" A" とかできるようにしたい
a変数にA、b変数のBみたいに代入する方法ないかな?
ただし脆弱性が怖いんで、 a="$(cmd)" みたいなものは
そのままa変数に$(cmd)という文字列が入る
そしてスペースとかダブルクォート入れたかったら
a='A " A' とか a="A \" A" とかできるようにしたい
679デフォルトの名無しさん
2021/01/14(木) 13:23:35.55ID:bf8JVc72 ムチャ言ってんな。w
680デフォルトの名無しさん
2021/01/14(木) 14:17:26.70ID:83515Abn681デフォルトの名無しさん
2021/01/14(木) 14:19:03.84ID:83515Abn ちなみに発言は↓ここ
https://github.com/koalaman/shellcheck/issues/2110
当人の発言によれば,
#!/bin/echoという「シバン」にすることに特に意味はないようなので
「単独で実行されたとき」を判定できればシバンじゃなくてもいい。
それはps(1)コマンドを使った「普通の」方法で達成可能。
まあ「普通」が嫌なんだろうなw
https://github.com/koalaman/shellcheck/issues/2110
当人の発言によれば,
#!/bin/echoという「シバン」にすることに特に意味はないようなので
「単独で実行されたとき」を判定できればシバンじゃなくてもいい。
それはps(1)コマンドを使った「普通の」方法で達成可能。
まあ「普通」が嫌なんだろうなw
682デフォルトの名無しさん
2021/01/14(木) 14:24:12.88ID:bf8JVc72 >>680
それだとsourceしたときにechoされちゃうやろ。
それだとsourceしたときにechoされちゃうやろ。
683デフォルトの名無しさん
2021/01/14(木) 15:11:50.55ID:fZvBFJEs どう面白いの?
684デフォルトの名無しさん
2021/01/14(木) 15:12:47.48ID:tanA3fVT685デフォルトの名無しさん
2021/01/14(木) 16:23:35.27ID:83515Abn 「ファイル名を変える」より「/usr/bin/echoがない」ことの方が致命的だと思うんだけどな。
まあ当人がそう思わないんなら(もしかして認識さえしてない?),俺はもう何も言わない。
まあ当人がそう思わないんなら(もしかして認識さえしてない?),俺はもう何も言わない。
686デフォルトの名無しさん
2021/01/14(木) 16:36:57.62ID:tanA3fVT /usr/bin/echoがないならエラーで落ちるだろ
実行しようとした時に、実行させないのが
目的なんだから、目的は達成できてる
実行しようとした時に、実行させないのが
目的なんだから、目的は達成できてる
687デフォルトの名無しさん
2021/01/14(木) 18:00:29.32ID:83515Abn688デフォルトの名無しさん
2021/01/14(木) 20:28:27.29ID:bf8JVc72689デフォルトの名無しさん
2021/01/15(金) 01:15:51.82ID:YhT5m5Ec 実用できない癖に実用性は求めるのか…
じゃあファイル名に依存しててもいいじゃん……
じゃあファイル名に依存しててもいいじゃん……
690デフォルトの名無しさん
2021/01/15(金) 07:41:49.61ID:uPQddvH2 実用っていうのは、echoするって意味だろ
ぱっとみてechoできなければ意味ないじゃんって
勘違いしたんだろうけど、echoするのが目的じゃないんだから実用性はある
なんのためにあるのか少しは考えたら?
ぱっとみてechoできなければ意味ないじゃんって
勘違いしたんだろうけど、echoするのが目的じゃないんだから実用性はある
なんのためにあるのか少しは考えたら?
691デフォルトの名無しさん
2021/01/15(金) 07:57:49.36ID:XkGM5v4E エコースクリプトという新ジャンルを思い付いたけど大してする事なかった
692デフォルトの名無しさん
2021/01/15(金) 07:58:08.43ID:79YZFf86 ヘマ避けならそもそも実行権限つけなきゃいいだけじゃね……
693デフォルトの名無しさん
2021/01/18(月) 18:04:21.25ID:Ge+kcekj シェルスクリプトをググらず書けるようになったやっぱ言語は覚えた方がいいのか
perlとか正規表現の指定しか知らんしまだsedやawkの方が出番あるわ
perlとか正規表現の指定しか知らんしまだsedやawkの方が出番あるわ
694デフォルトの名無しさん
2021/01/18(月) 18:36:52.77ID:ZtDZqP0p まあ書けないよりは書けたほうがいいのは確かだが、
シェルスクリプトの場合、すでにある便利なコマンドを組み合わせるには
最速の方法なので、その言語を覚えていたとしても使えるようになったほうが良いと思うよ
シェルスクリプトの変わりにプログラム言語を使うと
コードが冗長になって、やりたい作業をささっとこなせない
コマンドの再発明をすることになる
シェルスクリプトの場合、すでにある便利なコマンドを組み合わせるには
最速の方法なので、その言語を覚えていたとしても使えるようになったほうが良いと思うよ
シェルスクリプトの変わりにプログラム言語を使うと
コードが冗長になって、やりたい作業をささっとこなせない
コマンドの再発明をすることになる
695デフォルトの名無しさん
2021/01/18(月) 20:37:19.00ID:daUvLGrG696デフォルトの名無しさん
2021/01/18(月) 21:36:36.94ID:ZtDZqP0p Perlは互換性がなー、と言いたいところだけど
その互換性って主にライブラリの話
awkにはライブラリがない。
じゃあライブラリ無しで比べてみよう
ライブラリがないawkと
ライブラリを使わないPerl
どちらが機能が上で互換性があるだろうか?
おそらくPerlの方が機能が上で互換性も有るだろうな
Perlがawkに劣るのは標準で入ってない環境に当たる可能性が少し高いってことぐらい
その互換性って主にライブラリの話
awkにはライブラリがない。
じゃあライブラリ無しで比べてみよう
ライブラリがないawkと
ライブラリを使わないPerl
どちらが機能が上で互換性があるだろうか?
おそらくPerlの方が機能が上で互換性も有るだろうな
Perlがawkに劣るのは標準で入ってない環境に当たる可能性が少し高いってことぐらい
697デフォルトの名無しさん
2021/01/18(月) 23:52:13.21ID:AsdWc5Bm ifはfi
caseはesac
など、何で最後の単語が逆になってるんでしょうか?
caseはesac
など、何で最後の単語が逆になってるんでしょうか?
698デフォルトの名無しさん
2021/01/19(火) 00:26:51.55ID:kVTxVY5X parlはawkやsed風に書けるけどあくまで似せてるだけで細部では違うから戸惑ったぞ
awkとperlでは添字がずれるし
sedの/foo/!や/foo/,/bar/はperlじゃできないからな
awkとperlでは添字がずれるし
sedの/foo/!や/foo/,/bar/はperlじゃできないからな
699デフォルトの名無しさん
2021/01/19(火) 00:46:49.98ID:CdqMY/2C awkはテキスト処理に特化した言語だろ
そもそも土俵が違う
そもそも土俵が違う
700デフォルトの名無しさん
2021/01/19(火) 01:53:49.03ID:c4o9VOno >>696
もう答えが出とるやん。w
ワイもそのとおりやと思う。
違うとするなら、昔のサーバーよりも、最近のコンテナのほうがPerlを外したくなるやろな、てところ。
意外とsedの価値が上がってる気が。
もう答えが出とるやん。w
ワイもそのとおりやと思う。
違うとするなら、昔のサーバーよりも、最近のコンテナのほうがPerlを外したくなるやろな、てところ。
意外とsedの価値が上がってる気が。
701デフォルトの名無しさん
2021/01/19(火) 01:55:12.82ID:c4o9VOno ちなみに、互換性ならむしろPerlのほうが?
環境に依存しないワンライナーを書くならsedよりperlの方がいい - Qiita
https://qiita.com/takc923/items/8654d69008e921c9c9fb
環境に依存しないワンライナーを書くならsedよりperlの方がいい - Qiita
https://qiita.com/takc923/items/8654d69008e921c9c9fb
702デフォルトの名無しさん
2021/01/19(火) 03:26:45.46ID:NDWgKi1/ >>697
When keywords are used, generally the reversed character sequence of the introducing keyword is used for terminating the enclosure
っていうだけ、terminating the enclosure のために reversed character sequence でいいんじゃねっていう発想なだけだろう
When keywords are used, generally the reversed character sequence of the introducing keyword is used for terminating the enclosure
っていうだけ、terminating the enclosure のために reversed character sequence でいいんじゃねっていう発想なだけだろう
703デフォルトの名無しさん
2021/01/19(火) 03:59:18.00ID:DHFXGQbg どの道具を使うべきかは解決すべき問題が与えられた時点で決まる
どれが優れているかなんて一般論で言うのは無意味だろ
どれが優れているかなんて一般論で言うのは無意味だろ
704デフォルトの名無しさん
2021/01/19(火) 04:17:07.83ID:EgWSSFeL doブロックの終了はなんでodじゃないんだろう。
odコマンドとぶつかるから?
odコマンドとぶつかるから?
705デフォルトの名無しさん
2021/01/19(火) 04:21:10.41ID:NDWgKi1/ らしい。odコマンドが先にあったかららしい
706デフォルトの名無しさん
2021/01/19(火) 05:59:25.50ID:Y7rxETSL707デフォルトの名無しさん
2021/01/21(木) 09:09:20.38ID:An1buQz3 ALGOL 68先輩チイっす
708デフォルトの名無しさん
2021/01/23(土) 22:13:34.25ID:99RNgT30 長いマルチバイトの文字列をきりのよい文字でカットすることはできますが
動画を落としていますがファイル名はタイトルから取っています
しかし昨今タイトルが長い動画があるため規定以上はcutコマンドでカットしていました
問題がありながらもそれなりに使えていたのですが
先日から落とせてない動画があり調べると
文字の途中でcutされてバイナリ文字になっているためか
samba経由で見れていないのが原因でした
(ls + grepでgrepがうまく動作していない問題もありました)
cutコマンドを調べると-bではなく-cを使えば将来的にいいようなのですが
現状-bと-cの動作は同じでした
このような場合にどのように対応するべきでしょうか
動画を落としていますがファイル名はタイトルから取っています
しかし昨今タイトルが長い動画があるため規定以上はcutコマンドでカットしていました
問題がありながらもそれなりに使えていたのですが
先日から落とせてない動画があり調べると
文字の途中でcutされてバイナリ文字になっているためか
samba経由で見れていないのが原因でした
(ls + grepでgrepがうまく動作していない問題もありました)
cutコマンドを調べると-bではなく-cを使えば将来的にいいようなのですが
現状-bと-cの動作は同じでした
このような場合にどのように対応するべきでしょうか
709デフォルトの名無しさん
2021/01/23(土) 22:13:55.21ID:99RNgT30 続き
【現状の実装】
cut -b 1-220 -n
【変更してみた実装】
cut -c 1-220 -n
【途中に加えている編集】
sed -e "y/!’@#$%&−+=_;/\!'@#$%&-+=_;/
※この編集のために以下の文字列の「!」が「!」になっています
これ以外に英数字などのASCII文字を変換をしていますが影響しないため割愛します
【元の文字列】
XXXXXXXXXX_たとえばラストダンジョン前の村の少年が序盤の街で暮らすような物語 第3話『たとえば「なんでもします!」と言われりゃ悪い気はしないけどそこはダメって言わなきゃいけないようなジレンマ』
【cutの結果】
XXXXXXXXXX_たとえばラストダンジョン前の村の少年が序盤の街で暮らすような物語 第3話『たとえば「なんでもします!」と言われりゃ悪い気はしないけどそこはダメって言わ?
※最後は「?」になっていますがls上の表示であり実際は違うようです
なお最終的には上記の文字列に拡張子を付与しています
【現状の実装】
cut -b 1-220 -n
【変更してみた実装】
cut -c 1-220 -n
【途中に加えている編集】
sed -e "y/!’@#$%&−+=_;/\!'@#$%&-+=_;/
※この編集のために以下の文字列の「!」が「!」になっています
これ以外に英数字などのASCII文字を変換をしていますが影響しないため割愛します
【元の文字列】
XXXXXXXXXX_たとえばラストダンジョン前の村の少年が序盤の街で暮らすような物語 第3話『たとえば「なんでもします!」と言われりゃ悪い気はしないけどそこはダメって言わなきゃいけないようなジレンマ』
【cutの結果】
XXXXXXXXXX_たとえばラストダンジョン前の村の少年が序盤の街で暮らすような物語 第3話『たとえば「なんでもします!」と言われりゃ悪い気はしないけどそこはダメって言わ?
※最後は「?」になっていますがls上の表示であり実際は違うようです
なお最終的には上記の文字列に拡張子を付与しています
710デフォルトの名無しさん
2021/01/23(土) 23:45:49.57ID:gMC6vTWO cut -b 1-220 | iconv -f utf-8 -t utf-8 -c
711デフォルトの名無しさん
2021/01/24(日) 00:02:43.53ID:goOw3wVq 違法ダウンロードは駄目だぞ
712デフォルトの名無しさん
2021/01/24(日) 00:07:55.48ID:noy3WRZf バイト数ではなく、見た目の長さ(全角(?)が2文字分)で切るでいいんだったら
colrm 221
かな
colrm 221
かな
713デフォルトの名無しさん
2021/01/24(日) 02:59:28.84ID:p6gUDKyK ext4は255バイトでNTFSはUTF-16で255文字だっけ?
ext4は日本語だと85文字ぐらいしかないんだよな
IVSをフルに使われたら32文字にまで減るというw
それに対してWindowsは255文字
ext4は日本語だと85文字ぐらいしかないんだよな
IVSをフルに使われたら32文字にまで減るというw
それに対してWindowsは255文字
714デフォルトの名無しさん
2021/01/24(日) 03:01:58.32ID:p6gUDKyK ロケールに対応していれば文字数で切ることは出来るかもしれないけど
それだと最大に長さにするのは難しそう
かと言ってCロケールとかにすると文字の区切りがわからない
文字として扱いたいけどバイト数で長さを切るって難しいな
なんでext4ってバイト数制限なんだろ?
それだと最大に長さにするのは難しそう
かと言ってCロケールとかにすると文字の区切りがわからない
文字として扱いたいけどバイト数で長さを切るって難しいな
なんでext4ってバイト数制限なんだろ?
715デフォルトの名無しさん
2021/01/24(日) 03:03:57.75ID:p6gUDKyK やるとしたらUTF8ロケールにして
N文字・・・何バイトか調べる
N-1文字・・・何バイトか調べる
って繰り返して、最大のバイト数に入るまで
1文字ずつループで削るしかないのかな?
N文字・・・何バイトか調べる
N-1文字・・・何バイトか調べる
って繰り返して、最大のバイト数に入るまで
1文字ずつループで削るしかないのかな?
716デフォルトの名無しさん
2021/01/24(日) 03:45:30.91ID:tOPT5JeT ぶつぶつ独り言をなに言ってんだこいつw
717デフォルトの名無しさん
2021/01/24(日) 06:40:05.99ID:hNIQMZQm どこか間違いでも?
718デフォルトの名無しさん
2021/01/24(日) 09:56:52.75ID:mNyCGHoF さりげなく間違いを入れて正しい答えを書いてもらう、そんなのには釣られんから
719デフォルトの名無しさん
2021/01/29(金) 13:10:05.73ID:3+uZOKvi ファイル1から時定数のマルチバイト文字数をファイル2へ出力するプログラムを書いてみたよ
https://www.stdput.com/dat/pg/cutstr.zip
手抜きでutf-8限定だけどね
https://www.stdput.com/dat/pg/cutstr.zip
手抜きでutf-8限定だけどね
720デフォルトの名無しさん
2021/01/29(金) 14:11:51.49ID:w7VgAIO0 >>719
C言語で独自実装してるからやり直し
--------
引数のファイルから指定した文字数をファイルへ出力します
コンパイルを行う為にg++が必要です
g++をインストールした後にcomp.shを実行して下さい
# apt install -y g++;
$ cd /(cutstrのディレクトリ)/;
$ sh ./comp.sh;
--------
実行ファイル
pg_cutstr.out
引数
-i 対象とするファイル
-n (出力する数)
-i 結果を出力するファイル
--------
実行例
./pg_cutstr.out -i /tmp/input.txt -n 8 -o /tmp/output.txt
--------
C言語で独自実装してるからやり直し
--------
引数のファイルから指定した文字数をファイルへ出力します
コンパイルを行う為にg++が必要です
g++をインストールした後にcomp.shを実行して下さい
# apt install -y g++;
$ cd /(cutstrのディレクトリ)/;
$ sh ./comp.sh;
--------
実行ファイル
pg_cutstr.out
引数
-i 対象とするファイル
-n (出力する数)
-i 結果を出力するファイル
--------
実行例
./pg_cutstr.out -i /tmp/input.txt -n 8 -o /tmp/output.txt
--------
721デフォルトの名無しさん
2021/01/29(金) 20:32:02.95ID:jpIxUK7H bashの機能をざっと見ていたらこんなの見つけたんだけど
http://manpages.ubuntu.com/manpages/bionic/ja/man1/bash.1.html
/dev/fd/fd
fd が有効な整数ならばファイル・ディスクリプター fd が複製されます。
/dev/stdin
ファイル・ディスクリプター 0 が複製されます。
/dev/stdout
ファイル・ディスクリプター 1 が複製されます。
/dev/stderr
ファイル・ディスクリプター 2 が複製されます。
/dev/tcp/host/port
host が有効なホスト名またはインターネットアドレスで port が整数のポート番号
ならば、 bash は対応するソケットに対して TCP 接続のオープンを試みます。
/dev/udp/host/port
host が有効なホスト名またはインターネットアドレスで port が整数のポート番号
ならば、 bash は対応するソケットに対して UDP 接続のオープンを試みます。
インターネットアドレスで接続できるんだーは、これみてなんとか使い方わかったんだけど
https://suztomo.hatenadiary.org/entry/20080430/1209574954
/dev/fd/fd これってどうやって使えばいいの?
http://manpages.ubuntu.com/manpages/bionic/ja/man1/bash.1.html
/dev/fd/fd
fd が有効な整数ならばファイル・ディスクリプター fd が複製されます。
/dev/stdin
ファイル・ディスクリプター 0 が複製されます。
/dev/stdout
ファイル・ディスクリプター 1 が複製されます。
/dev/stderr
ファイル・ディスクリプター 2 が複製されます。
/dev/tcp/host/port
host が有効なホスト名またはインターネットアドレスで port が整数のポート番号
ならば、 bash は対応するソケットに対して TCP 接続のオープンを試みます。
/dev/udp/host/port
host が有効なホスト名またはインターネットアドレスで port が整数のポート番号
ならば、 bash は対応するソケットに対して UDP 接続のオープンを試みます。
インターネットアドレスで接続できるんだーは、これみてなんとか使い方わかったんだけど
https://suztomo.hatenadiary.org/entry/20080430/1209574954
/dev/fd/fd これってどうやって使えばいいの?
722デフォルトの名無しさん
2021/01/30(土) 11:06:08.44ID:0eg/dEnN 2> /dev/fd/1
2> /dev/stdout
2>&1
等価だろう。大体は 2>&1 だろうけど、2>&1 じゃなく上の方がとかは
out=/dev/null # or /dev/1(/dev/fd/stdout) or /path/to/file, etc
2> $out
とかしたいとかかな。0/1/2以外は exec で自分で(FIFOとか)割り当てたのとか
2> /dev/stdout
2>&1
等価だろう。大体は 2>&1 だろうけど、2>&1 じゃなく上の方がとかは
out=/dev/null # or /dev/1(/dev/fd/stdout) or /path/to/file, etc
2> $out
とかしたいとかかな。0/1/2以外は exec で自分で(FIFOとか)割り当てたのとか
723デフォルトの名無しさん
2021/01/30(土) 13:28:33.67ID:NOQF7Zt1 /dev/fd/100 とかできるんじゃないかと思って
724デフォルトの名無しさん
2021/01/30(土) 13:33:54.58ID:NOQF7Zt1 もしかして/dev/fd/fdを使って新しいファイルディスクリプタを作れないのか?
725デフォルトの名無しさん
2021/02/01(月) 01:32:52.47ID:/mOfS3Su $ a=$(printf '\0\n')
-bash: 警告: command substitution: ignored null byte in input
っていうエラーが出るんだけどさ、これだとでない
printf '\0\n' | read a
なんでreadだとこのエラーはださないんだろう?
誰か理由わかる?
-bash: 警告: command substitution: ignored null byte in input
っていうエラーが出るんだけどさ、これだとでない
printf '\0\n' | read a
なんでreadだとこのエラーはださないんだろう?
誰か理由わかる?
726デフォルトの名無しさん
2021/02/01(月) 02:54:12.47ID:TyKattHL727デフォルトの名無しさん
2021/02/01(月) 02:58:31.68ID:45FIRZtx >726
それは「警告:コマンド置換:入力のヌルバイトを無視しました」を取り除きます
という内容なので全くの無関係です
それは「警告:コマンド置換:入力のヌルバイトを無視しました」を取り除きます
という内容なので全くの無関係です
728デフォルトの名無しさん
2021/02/01(月) 03:00:33.65ID:45FIRZtx なぜこんな簡単な質問が理解できないのか、疑問に思います。
質問は明らかにこれです。
> なんでreadだとこのエラーはださないんだろう?
質問は明らかにこれです。
> なんでreadだとこのエラーはださないんだろう?
729デフォルトの名無しさん
2021/02/01(月) 03:25:24.42ID:srTHfdLe readはコマンド置換じゃないから。
なんでこんな単純なことが理解出来ないのか、理解に苦しむ
なんでこんな単純なことが理解出来ないのか、理解に苦しむ
730デフォルトの名無しさん
2021/02/01(月) 03:33:26.42ID:IMDeHKxL すごいな。本当に質問を理解できてなかったよ。
なぜコマンド置換ではない場合は、エラーを出さないことにしたのか?
という質問だろ
なぜコマンド置換ではない場合は、エラーを出さないことにしたのか?
という質問だろ
731デフォルトの名無しさん
2021/02/01(月) 03:41:04.66ID:srTHfdLe >なぜコマンド置換ではない場合は、エラーを出さないことにしたのか?
昔は出ていたんですか?
昔は出ていたんですか?
732デフォルトの名無しさん
2021/02/01(月) 03:44:32.56ID:IMDeHKxL ふう・・・昔はどうだったかなんて>>726を読めばわかるだろ
話にならない
話にならない
733デフォルトの名無しさん
2021/02/01(月) 04:06:05.16ID:srTHfdLe だったら質問がおかしいだけでは?
ほんと話にならないw
ほんと話にならないw
734デフォルトの名無しさん
2021/02/01(月) 04:07:05.58ID:IMDeHKxL 言ったな?なら質問のどこがおかしいか指摘できないなら
お前が間違ってることになる。はいどこがおかしいか言ってみて
お前が間違ってることになる。はいどこがおかしいか言ってみて
735デフォルトの名無しさん
2021/02/01(月) 04:07:54.79ID:IMDeHKxL まあまたいつものやつだろうな。他人の話を聞かないで
自分の思い込みで発言して、指摘されたら逆切れ
自分の思い込みで発言して、指摘されたら逆切れ
736デフォルトの名無しさん
2021/02/01(月) 09:03:24.63ID:1kN5LQIf 宿題でもやってんの?
ソースでも読めばいいのに
ソースでも読めばいいのに
737デフォルトの名無しさん
2021/02/01(月) 09:17:38.98ID:srTHfdLe >>735
自己紹介かよ草
自己紹介かよ草
738デフォルトの名無しさん
2021/02/01(月) 09:26:00.05ID:QF/67lbC ソース読んでも意図はわからんだろうな
元々あったが無効に(#if 0)になってたのが有効に(#if 1)なったていうだけっぽい、ソース上だけでは
元々あったが無効に(#if 0)になってたのが有効に(#if 1)なったていうだけっぽい、ソース上だけでは
739デフォルトの名無しさん
2021/02/01(月) 10:21:53.21ID:TyKattHL なぜこんな簡単な文章を最後まで読まずに無関係だと決めつけるのか、疑問に思います。
740デフォルトの名無しさん
2021/02/01(月) 11:27:36.40ID:OjiuyGRS キチガイに関わるな
741デフォルトの名無しさん
2021/02/01(月) 12:03:40.53ID:IMDeHKxL742デフォルトの名無しさん
2021/02/01(月) 12:55:01.95ID:DIpjm9PW > なんでreadだとこのエラーはださないんだろう?
>なぜコマンド置換ではない場合は、エラーを出さないことにしたのか?
ある意味認識が逆。でなくて、単に、
コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
というのだろう
そういう認識を持っていた(本当に持っていたかは知らんけどw)ら、お前に対して言っているのも間違いではない
単なるちょっとした行き違いとしろよ。お前の質問文がズレてるのもあるしそれなのにお前から挑発してるしw、何で
コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
のかはちょっと調べた範囲ではわからなさそうだからな=そのせいでバグとされて対応に追われてるのがわんさかあるのに、何でbash 4.4(?)からそうなったのか言及されてるのはなさげ
>なぜコマンド置換ではない場合は、エラーを出さないことにしたのか?
ある意味認識が逆。でなくて、単に、
コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
というのだろう
そういう認識を持っていた(本当に持っていたかは知らんけどw)ら、お前に対して言っているのも間違いではない
単なるちょっとした行き違いとしろよ。お前の質問文がズレてるのもあるしそれなのにお前から挑発してるしw、何で
コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
のかはちょっと調べた範囲ではわからなさそうだからな=そのせいでバグとされて対応に追われてるのがわんさかあるのに、何でbash 4.4(?)からそうなったのか言及されてるのはなさげ
743デフォルトの名無しさん
2021/02/01(月) 12:57:52.28ID:KcF6/QTu パイプは、エラーメッセージを出したらダメ。
後ろにつながらない
出ていても、標準出力には出せない。
結果を、後ろに標準出力で渡すから
標準エラーか、エラーログに出さないといけない
後ろにつながらない
出ていても、標準出力には出せない。
結果を、後ろに標準出力で渡すから
標準エラーか、エラーログに出さないといけない
744デフォルトの名無しさん
2021/02/01(月) 13:00:27.89ID:DIpjm9PW 今までのでの関連なら関係ない話だな
745デフォルトの名無しさん
2021/02/01(月) 14:09:03.27ID:IMDeHKxL >>742
> コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
どっちでもいいわw
なんでコマンド置換「だけ」だしたのか?その意図がわかる?
言っとくけど質問は「だけ」だからな
「だした」理由なんかわかってる
なぜコマンド置換のとこ「だけ」なのか
> コマンド置換とこだけ(そもそもコード上でもあった)メッセージを出すようなった
どっちでもいいわw
なんでコマンド置換「だけ」だしたのか?その意図がわかる?
言っとくけど質問は「だけ」だからな
「だした」理由なんかわかってる
なぜコマンド置換のとこ「だけ」なのか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- やばいずっとスマホいじってても寂しいわ話そうよ
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
- ( ・᷄ὢ・᷅ )最近おはぎを出すのがしんどくなってきた
