1 名前:名無しさん@お腹いっぱい。 [04/05/28 16:56.net] sedスレッド
557 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/09(土) 13:34:35.65 .net] 便利なの持ってんじゃん tacでいいような気もするけど
558 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/12(火) 05:03:42.07 .net] 短くても難読すごいから可能ならtacのたぐい、基存のコマンドで処理したい
559 名前:名無しさん@お腹いっぱい。 [2019/03/19(火) 12:52:18.64 .net] GNU sedじゃなくて、BSDsedをビルドしたい。 OS付属の/usr/binソースはあるけど https://github.com/freebsd/freebsd/tree/master/usr.bin/sed sed単体がない。 ビルド出来るBSDsedのURLを教えてください
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/19(火) 13:05:15.53 .net] そこの使えばいいんじゃないの Makefileは適当に改変するとして
561 名前:名無しさん@お腹いっぱい。 [2019/03/19(火) 13:55:05.58 .net] >>560 make -f MakefileしだんたけどカレントディレクトリのMakefileはそのままでは使えなかった。 オプションが必要なのかも知れないが、よくわからず。
562 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/19(火) 19:46:54.93 .net] >>561 FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。 なんの OS を使ってるのかわからいけど、 pkgsrc が対応している OS なら pkgsrc 導入して、 textproc/nbsed をインストールするのが一番楽だと思う。 pkgsrc.org/
563 名前:名無しさん@お腹いっぱい。 [2019/03/20(水) 04:19:12.82 .net] >>562 MacOSです。ソース側で単体ビルドできる用意されていれば出来ると考えました。 早速挑戦して上手く行ったらここに報告します。
564 名前:名無しさん@お腹いっぱい。 [2019/03/20(水) 04:24:16.70 .net] >>562 >FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。 これ当たってた。BSDの本家に問い合わせたら560のURLにあるsedのmakefileはOS用らしい。 自分で一からconfigureやmakefileを用意すればビルド出来るのかもね。 sedの最新版を使いたかったが時間あるときに563を試します。
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/20(水) 04:45:39.59 .net] Makefileの中見てgcc一発でも行けんだろって気がするが って自分は前それやってみた気もするが それくらい試せよ
566 名前:名無しさん@お腹いっぱい。 [2019/03/20(水) 07:03:53.34 .net] >>565 確か、Linux のcore utilとかだとconfigure sedみたいなかんじで、コマンドの単独コンパイルできる。 manにかかれているメアドでBSDの本家に問い合わせたら 単独コンパイル出来ないとの返事だった。OSビルド用らしい もう消してしまったが、成功した人がいたら教えてほしい。方法がわかれば再試行する気はあります
567 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/20(水) 07:04:29.16 .net] ごめん、もうsageるべきだった
568 名前:名無しさん@お腹いっぱい。 [2019/03/26(火) 09:49:12.30 .net] 別にageでもいいよ
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/24(月) 23:38:04.88 .net] 正規表現一致した行と,その一致した行と4行後のみを抽出とかってどうすればいいですか?
570 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/25(火) 13:21:07.60 .net] -n '/re/{p;n;n;n;n;p;}' とか?
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/27(木) 17:00:14.56 .net] *.cと*.hを落として gcc -I . compile.c main.c misc.c process.c -o sed するとmain.cの__unreachable();がリンクエラーになるけど https://github.com/freebsd/freebsd/blob/master/sys/sys/cdefs.h#L385を参考に((void)0);に置き換えればビルドできるじゃん
572 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/02(火) 15:24:44.16 .net] >>571 有難う。諦めていたけど早速やってみます。
573 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/02(火) 22:35:36.02 .net] 560です。572のとおりビルドできました。 インストール済のMac版sedは2004年頃なのでバージョンアップできて助かります。 これから100近くあるソースを調べます。 linux版との互換性ない記述を書いてしまいました。 gnu sedもMac上ではビルドできていませんが諦め。
574 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/02(火) 23:46:07.78 .net] マジかよ gnu sedなんてそれこそ./configureしてmakeだけじゃん --program-prefix=gくらいつけといた方がいいだろけどさ
575 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/02(火) 23:47:55.81 .net] あー、なんかつい誘導されちゃった感じ...
576 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/03(水) 01:18:23.32 .net] >>574 560です。エラー、コピペしていいですか?長いんですけど。。。
577 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/03(水) 03:40:41.85 .net] gnu sed もインストール出来ました。 bash_profileのパスを最小限にしたらエラーがなくなったみたい?
578 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/03(水) 03:41:36.40 .net] >>576 質問は取り消します。有難うございました。
579 名前:30GBでも大丈夫 thanks sed mailto:sage [2019/07/06(土) 21:39:28.25 .net] sed -n '10509757p' primes 2147483563 2147483579 2147483587 2147483629 2147483647-2147483648-2147483647-2147483646-2147483645-2147483644 OFやらかした最終行 ... -1800706952-1800706951-1800706950-1800706949-1800706948-1800706947-1800706946-1800706945-1800706944-1800706943 sed -ie '10509758,$d' primes
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/09/08(水) 17:50:49.92 .net] sedのホールドスペースは、その内容を削除するにはどうすれば? とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/09/08(水) 17:54:36.56 .net] sedスクリプトファイルでよく使われる拡張子はあります? ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed?
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/12/25(土) 09:31:39.87 .net] >>581 別にこだわる必要はないけど 各種sed処理系付属のexamplesとか覗くとみんな.sedなので、あえて正書法にこだわるならやはり.sedかと 実装を隠したコマンドとして纏めたい、常に特定のオプション(-i等)で起動したい、主コードとsedの拡張チェック等を分離したいならenvを使うとよい sedによってはオプションを重ねられたり重ねられなかったりするので #! /usr/bin/env -S sed -f (-i -n -e 'check')
583 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/12/25(土) 09:35:07.03 .net] ところでgnu sedの付録のdc.sedってのやばいなこれ 興味深いけど誰か注釈付けてくれたりしてないのか
584 名前:名無しさん@お腹いっぱい。 [2023/02/05(日) 22:38:55.04 .net] onigsed がダウンロードできなくて困ってます。
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2023/09/30(土) 14:56:35.67 .net] (@д@)/?.うそ~!””
586 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 19:48:02.41 .net] たどり着けない境地だ
587 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 19:55:02.09 .net] それらが引退した人も逮捕されてるの見つかって捕まって誰かに相手されないもんね ヒスンは凄く特殊な銃を使って
588 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 21:38:04.20 .net] 4232 じり下げはやめて良い部屋は空いてるんだったら 胃がびっくりしておかしくなる 家庭崩壊する それが政治とどう関係あるのが信じられなくなったから焦った
589 名前:名無しさん@お腹いっぱい。 [2024/04/01(月) 17:36:13.18 .net] awkについて語るスレ $3 https://mevius.5ch.net/test/read.cgi/tech/1600054668/
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/05/30(木) 11:15:41.15 .net] pcre使えるsedある?
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/05/30(木) 19:55:34.18 .net] https://github.com/christopherfujino/sed-pcre はイケてるんかな
592 名前:名無しさん@お腹いっぱい。 [2024/08/13(火) 08:10:10.49 .net] sed '/削除したい行/d' で「削除したい行」は削除されるが、「削除したい行」の1行前から2行後迄削除したい場合は、どう書くの?
593 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/13(火) 09:58:16.91 .net] grepだと複数行はAオプションがあるけど、sedは複数行は無理なんじゃないかな
594 名前:名無しさん@お腹いっぱい。 [2024/08/13(火) 10:50:05.64 .net] >>593 質問の前提を変更するっち。以下、 sed '/削除したい行/,+2d' で、GNU sedでは「削除したい行」から2行後まで削除されるが、
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/13(火) 22:27:16.64 .net] sed -n '{ /削除したい行/{ g; s/\n[^\n]*$//; h; n; n; bc }; H; s/.*//; :c }; ${ g; s/\n//; p }' 黒魔術じみたコードになっちゃった…
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/13(火) 23:44:44.87 .net] 複数行、出来るんだ 知らなかった
597 名前:名無しさん@お腹いっぱい。 [2024/08/14(水) 05:52:06.53 .net] その手のためだけに,plan9のsamを使ってた.
598 名前:593 [2024/08/14(水) 19:02:06.33 .net] >>595 ありがとう。 # でも全然解らん...
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/14(水) 20:18:50.75 .net] 仕組みを学ぶのは後で、やりたいことが実現できるならいいでしょ sudo \rm -rf / とかを躊躇無く実行しちゃうみたいなのは危険だけど
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/15(木) 01:15:03.31 .net] "削除したい行"行が連続する場合 前1行がない場合 後2行がない場合
601 名前:593 [2024/08/15(木) 08:30:40.41 .net] >>600 仕様を明確化せよという意味だべか。 「削除したい行」の1行前から2行後迄の削除対象「範囲」は、1ファイルのどこかに必ず1箇所存在する。なのでその3条件は無い。
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/15(木) 18:45:42.03 .net] >>595 seq 10 | sed -n '{ /^9$/{ g; s/\n[^\n]*$//; h; n; n; bc }; H; s/.*//; :c }; ${ g; s/\n//; p }' 何も出力されない 最終行に到達してからさらに n コマンドを使うと、以降はアドレス $ に一致しなくなるみたい n を $!n にするのが手っ取り早い あとこれ s/.*// は要らないと思う 外側の { } も seq 10 | sed -n '/^9$/{ g; s/\n[^\n]*$//; h; $!n; $!n; bc }; H; :c; ${ g; s/\n//; p }'
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/15(木) 18:59:31.57 .net] sed '$!N;/削除したい行/,+2d;P;D;'
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/08/15(木) 22:15:36.30 .net] sed 'H;1h;$!d;x; s/^\([^\n]*\n\)\{0,1\}削除したい行\(\n[^\n]*\)\{0,2\}\n\?//m;'
605 名前:名無しさん@お腹いっぱい。 [2025/04/27(日) 17:41:15.94 .net] I sed.
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2025/10/17(金) 18:28:31.06 .net] それはsaidや