- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:23.25 .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の方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう 前スレ シェルスクリプト総合 その26 https://mevius.5ch.net/test/read.cgi/unix/1489979246/
- 790 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:04:46.28 .net]
- wgetでgithub上にある既存のシェルスクリプトを叩くと
ユーザー名とパスワードを聞かれるのですが、 その入力を自動化したいという意味です。 github上のシェルスクリプトは変更できません・・・
- 791 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:16:35.68 .net]
- wgetでシェルスクリプト叩くてどういう意味?
出力をシェルに流し込むって事?
- 792 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:25:22.13 .net]
- なんかパスワード 自動入力 あたりでggったらすぐ出てきそうやな
- 793 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:29:12.30 .net]
- >>761
相手側の要求に従ったuser名パスワードの提供方法をwgetでするとよいでしょう どのVPS?どういう相手側のサービス?その使ったというはGitHubのどれ? https://gist.github.com/kevinold/216077/4d725773b46a2ac32c0f5a689339d3da004d7f5d これでいいのか?適当にぐぐったらVPSだしwget使ってるしw >>762 まあ、なんかセットアップでコマンド叩いたりするのだろう。そういえばwgetで認証できなかったら再入力なんて求められないよな...??あったかな??
- 794 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:55:18.59 .net]
- wgetは--userと--passwordでユーザー名とパスワードを指定できるはずだけど
- 795 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:04:40.17 .net]
- httpのBASIC認証やftpのならそれで問題はないよね。普通にBASIC認証でそのオプションを教えてっていうことだけかな
- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:12:51.93 .net]
- manくらい嫁カス案件
- 797 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 19:26:12.11 .net]
- wgetが書かれたシェルスクリプトを呼び出すシェルスクリプトを書きたいように見えるが…
まあ質問が日本語的に不自由すぎるね
- 798 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 20:51:22.89 .net]
- wgetがBASIC認証を要求してくるんですが、
パスワードをシェルスクリプトに書きたくないです。 別ファイルに生パスワードを書くのも嫌です。 かといって毎回入力するのは面倒です。 ssh-agent利用して最初に一回いれて覚えさせるだけで あとはパスワードなしにできたりしないですかね?
- 799 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:11:05.80 .net]
- ssh-agent/ssh-keychainはどうなんだろ、無理じゃねと思うが、keyring(Linux/BSD)/Keychain Access(macOS)を使えばふつーにできるだろうな
- 800 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:17:58.64 .net]
- 最初の質問と内容か変わってるし、パスワード書きたくないらしいので、役にたたないだろうけど、俺ならexpectでスクリプト書く
- 801 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:25:16.46 .net]
- 最初の質問者と別人じゃね?レスの書き方から同一人物にも見えるけどw
- 802 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 22:26:52.66 .net]
- まあなんか知らんがもっとドキュメントに当たったらって気がする
- 803 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:07.84 .net]
- jqについて教えてください。
https://ideone.com/SZlhR4 やり方が分からないので、以下のようにとりあえすyenを指定したら並び順が思ったようになりませんでした。 $ cat kudamono.json | jq -r '.genre_name, .list[].name, .list[].hinshu_list[].yen' くだもの りんご みかん いちご 180 500 200 50 63 300 null null null 続く
- 804 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:30.18 .net]
- 以下のように標準出力に出す方法を教えてください。
くだもの りんご ふじ 180 サンふじ 500 つがる 200 みかん きんかん 50 いよかん 63 せとみ 300 いちご あまおう null ひのしずく null とちおとめ null
- 805 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 01:36:22.49 .net]
- >>772
別の人ですよー。
- 806 名前:竄閧スいことを思い出したので、書いてみたの♪ []
- [ここ壊れてます]
- 807 名前:名無しさん@お腹いっぱい。 [2018/06/27(水) 03:13:21.88 .net]
- >>774-775
. | .genre_name, (.list[] | .name, (.hinshu_list[] | .hinshu, .yen)) https://stedolan.github.io/jq/tutorial/ https://stedolan.github.io/jq/manual/ 見つつ https://jqplay.org で試した jq初めての俺でもすぐできたじゃねーか まじめにやれ
- 808 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 07:24:03.91 .net]
- >>777
どうもありがとうございます! カッコを使うといいんですね
- 809 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 16:24:57.87 .net]
- dashで動くシェルスクリプトってPOSIX準拠のシェルスクリプトだと思って問題ない?
- 810 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 17:11:46.11 .net]
- そいつから呼ぶコマンドもPOSIXじゃないとな。
- 811 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 00:29:23.70 .net]
- dashはPOSIX準拠である
だからPOSIX準拠のコードはdashで期待どおり動く だけどdash専用のコードはPOSIX準拠ではない
- 812 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 01:00:02.18 .net]
- kshのposixモードがかな。POSIX仕様の元となった自負があるだろうからposixモードもちゃんとしてそう
- 813 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:10:41.02 .net]
- あの,すごく初歩的なことだと思うのですが,
Excelなどのように隣のセルの値を参照して現在のセルの値を計算するという手法を シェルスクリプトで行うにはどうすればいいでしょうか。 具体的には,参照した値をaとして,(1-sin^2(a))/2^aを計算したいです。 Excelだと,A列に値を入力していき,B1セルに「(1-(SIN(A1))^2)/2^A1」と入力した後ドラッグすればいいのですが……。
- 814 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:52:18.06 .net]
- a=値
echo "(1-s($a)^2)/2^$a" | bc -l とか?
- 815 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/01(日) 20:12:26.02 .net]
- cat <<. | xargs -I @ echo (1-s(@)^2)/2^@ | bc -l
3 44 -6 . こんなのでどう?
- 816 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:06.28 .net]
- cat と echo と print の違いが分からない
あと、print と printfの違いも 教えて
- 817 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:38.56 .net]
- less と moreも
- 818 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:07:32.55 .net]
- manすりゃいいんじゃないの
- 819 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:15:59.23 .net]
- cat と echo,printf は全然違う。主に出力するソースが(ゆえにパイプで入力受ける受けないとなり?)
echo と printf は、書式が指定できるかというか、コマンド由来とC由来かな printって?awk内のならprintはechoのようなもんかな(Ubuntuには print がコマンドであるけど Mailcap とかナニそれな普通じゃないのだな)
- 820 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:19:26.23 .net]
- ググったらechoは改行されてしまうけどprintfは自分で\nしないと改行されないってあった
- 821 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:23:46.00 .net]
- それらの違いが分からないのは使ってないからだろ
使ってないなら知る必要もないし知ろうとも思わない 自作自演かな?
- 822 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:26:27.85 .net]
- >>791
宿題
- 823 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:23.78 .net]
- コマンド由来とC由来ゆうてるやんw
printf(1) は printf(3) と同じと思えば不思議ではないだろう。echo も -n で改行しないようにもできるけどイレギュラー、コマンド由来だからな >>791 まあ、なんの目的で聞いてるのかさっぱりわからんくはあるな。なんの自作自演なのかさっぱりだけど
- 824 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:58.46 .net]
- >>792
宿題かああ。程度が低いな。高校でとかか?
- 825 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:28:13.36 .net]
- >>792
あぁ…
- 826 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:39:06.49 .net]
- >コマンド由来
コマンドはつねに改行されるの?
- 827 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:40:31.96 .net]
- あと、printfのfって何?
f付けたのはcが最初? fって?
- 828 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:44:50.94 .net]
- 少しは自分で調べろよ
- 829 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:47:13.07 .net]
- 調べたから改行の事分かったんだけど?
- 830 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:47:50.56 .net]
- もっと自分で調べろよ
- 831 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:49:35.35 .net]
- じゃぁfだけヒント教えて
- 832 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:50:22.47 .net]
- それな
- 833 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:50:43.52 .net]
- >>796,797
コマンドで何か出力するのに「改行しない」方が少ないだろうという。echo "Hello"が改行しなかったら
- 834 名前:プロンプトが続いてとか。改行した方がその機会が多いので省けるだろう
f = フォーマット。printfはCが起源じゃないのかなあ。の前の何かの言語ではprintがあっただろうな(どういうのか知らんけど) 聞く姿勢が小学生低学年並みだな。そろそろ>>798の言うとおり [] - [ここ壊れてます]
- 835 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:55:17.35 .net]
- >>803
どうもありがとうございました
- 836 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:22:33.69 .net]
- 礼儀正しいな
少し見直したw
- 837 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:24:56.72 .net]
- manとinfoどっち使ってる?
infoは文中から別のページに飛べるから便利そうだけどウェブブラウザのように戻る進むボタンがあるわけでも無いし全部文字だけだから現在位置が分からなくなるからmanがいいと思うんだけどどう?
- 838 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:25:43.12 .net]
- なんか最近ほんとこういうアンケートみたいなの増えたな
どっかから流れてきたか?
- 839 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:27:19.76 .net]
- この質問は乾燥機かせてほしいだけだから
- 840 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:29:11.19 .net]
- UNIX板だからmanだな
- 841 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:31:13.31 .net]
- 何を乾燥させたいのかしばらく悩んだ
- 842 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 18:41:01.45 .net]
- 「乾燥機貸して」ってアンジャッシュのネタにあったなそういや
- 843 名前:名無しさん@お腹いっぱい。 [2018/07/02(月) 19:09:02.32 .net]
- man manて口で言うと恥ずかしいからinfo
- 844 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 19:35:17.38 .net]
- rcsのco(1)を
- 845 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 21:56:08.50 .net]
- tinfo
- 846 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 22:32:14.11 .net]
- そのあたりのネタはもう聞き飽きた
- 847 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 00:21:24.80 .net]
- ディレクトリの中の拡張子がm2tsのファイル全てをtsselectというコマンドに投げてその標準出力をひとつのファイルに追記で書き込みたいんですが、その際、ファイル名も一緒に書き込みたいです。
どうやってファイル名を取得するんでしょうか? $ tsselect *.m2ts > ana.log
- 848 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 00:43:49.80 .net]
- 1行で書けなかったので、複数行に分けてfor分を使いました。
- 849 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 01:01:05.23 .net]
- こんなん?
for i in *.m2ts; do echo $i >>ana.log; tsselect $i >>ana.log; done
- 850 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 07:39:11.34 .net]
- 近頃のどこか(このスレかも)で,
「fgrepはgrepより遅い」というような話を耳にしたんですが,ほんとうですか? 手元のgrepで試したところ,ほとんど有意な差はありませんでしたが……。
- 851 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 08:10:45.64 .net]
- それぞれ独自バイナリだった昔の話な。
あとgrepよりegrepの方が速かったんで、 今でも手はegrepを優先して打っちゃうけどな。
- 852 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 08:43:22.98 .net]
- いや独自バイナリだった頃もfgrepの方が速かったような。
grepだけ非決定性オートマトンで遅い的な。
- 853 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 15:23:44.48 .net]
- ファイルの一括リネームで
$ find . -name "*X*" | while read F; do mv $F ${F/X/Y}; done だとXXXがYXXになるんですけどYYYにするには繰り返さなきゃいけないんですかね?
- 854 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:18:50.48 .net]
- If pattern begins with /, all matches of pattern are replaced with string.
- 855 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:22:26.78 .net]
- 日本語で書いてくれないとわかりません
できれば修正したコマンドを書いてください
- 856 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:25:40.84 .net]
- お断りします
- 857 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:27:15.37 .net]
- 断る理由とは?
- 858 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:29:57.71 .net]
- ひな鳥に餌を上げるのはひな鳥がかわいいからだ
なんかこのひな鳥うざいって思ったら餌は与えない
- 859 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:31:49.67 .net]
- 可愛く思われる質問の仕方でもあったんですかね
- 860 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:34:15.63 .net]
- とりあえず「sh 変数展開」あたりでggってからここに来
- 861 名前:い
それで分からなきゃどこかの暇人が餌与えてくれるまでずっと待ってな [] - [ここ壊れてます]
- 862 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:35:48.08 .net]
- ありがとうございました
- 863 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:54:10.40 .net]
- もう来んなよ
- 864 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:24:31.29 .net]
- すみません
ワードとかに出来る~$で始まるファイルを一括で消したいのですがどうすればいいですか。 find ./ -name "~$*" -exec rm -rf {} \; これだと上手くいかないです。 find ./ -name "~\$*" -exec rm -rf {} \; エスケープしてもダメです。 find ./ -name "~*" -exec rm -rf {} \; これだと上手くいきますが$も指定するためにはどうすればいいですか。
- 865 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:27:42.16 .net]
- シングルクォート使っとけばぁ
- 866 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:30:53.83 .net]
- >>833
上手くいかないです $ find . -name ~'$'* Unknown user: $*. $ find . -name "~'$'*" Illegal variable name. $ find . -name ~"$"* Illegal variable name. $ find . -name '~"$"*' 何も出力されない
- 867 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:41:11.43 .net]
- 自己解決
bashにしたら\で普通にエスケープできました find . -name "~\$*" なんでcsh使ってたんだろ
- 868 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:44:18.71 .net]
- csh使ってたならプロンプト$にすんなよ紛らわしい
- 869 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:46:56.81 .net]
- cshだと%でしたねすみません
% find . -name "~\$*"
- 870 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 20:48:13.14 .net]
- なんで-rつけてんねん
- 871 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 20:56:00.21 .net]
- ファイルフォルダ関係なく消したいからフォルダがないとわかっていても付けてる
- 872 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:12:02.88 .net]
- \; より + かな。forkの遅いCygwinでは特に。
- 873 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:21:14.22 .net]
- 最後以外の改行を削除する単純で可搬な方法を探しています。
私が現在使っている方法は cat <<. | tr -d '\n' | printf '%s\n' "$(cat)" a bbb cc . です。これは可搬性は抜群ですが、冗長すぎると感じています。 できれば一つのコマンド(sedとか?)で済ませたいです。よろしくお願いします。
- 874 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:32:09.95 .net]
- awkで
- 875 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:34:23.01 .net]
- フォルダっつーかディレクトリ
- 876 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:37:25.99 .net]
- 同じだろ
- 877 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:40:52.56 .net]
- >>841
sed ':l;N;s/\n//;bl' とかかな。// を /,/ にすると、1行CSVに出来る。
- 878 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 22:22:07.40 .net]
- >>845
ありがとうございます! すごいですね……。:lってラベル付けでしたっけ。
- 879 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 23:00:04.93 .net]
- >>841
cat <<. | { tr -d '\n'; echo; } a bbb cc .
- 880 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 09:36:25.04 .net]
- Mac付属のsedじゃうまく行かなかった、ってお呼びじゃないか
最近のBSD sedはどうかわからないけど
- 881 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 10:23:41.12 .net]
- >>848
え? そうなの? OS Xを持ってないので知らんが Busyboxでも行けるくらいの可搬性はあるぜ? 全部POSIXで規定されてる命令だし。
- 882 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 12:53:17.75 .net]
- macOSだけでなくBSDでだめっぽい。BSDでだめというか、GNU sedでなら動くか
- 883 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:18:26.92 .net]
- 主にパターンスペースに対して処理した直後にどうするってとこの違いかな。他ではBSDでもmacOSとOpenBSDでは行を処理しなかった場合どうするがちょっと動作が違ったり、いろいろ鬼門だなsedは
sed '$!{H;d;};${H;g;s/\n//g;}' で、いちおう、sedもGNU sedものようだけど、ゴテっとはしてんな
- 884 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:50:09.34 .net]
- >>845も結局改行を削除しているだけ&最後の改行はsedの勝手に付けるだけなので、>>847の方がシンプルでこっちの方がって感じだな
- 885 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:36:04.46 .net]
- >>845のMacやBSD向け変種でけた
sed -e :l -e 'N;s/\n//;$p;bl'
- 886 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:51:48.45 .net]
- おおっ
ラベルを別にすれば/しなきゃなのか $はそこに入れるのか、なるほど GNU sedではそれだと.
- 887 名前:..オプションで変えられるかな
くせが強いw [] - [ここ壊れてます]
- 888 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 17:34:11.18 .net]
- 教訓。移植性を重視するならsedで変なことするな。普通の正規表現だけ使え
- 889 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:25:50.29 .net]
- 昔はもっと酷かったんだろうな #移植性
sedだけじゃなくてgrepとかも。
- 890 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:33:28.39 .net]
- >>856
昔は一つしかなかったから移植性よかったよ。 GNUが台無しにした。
|

|