sedat UNIX
sed - 暇つぶし2ch579:30GBでも大丈夫 thanks sed
19/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:名無しさん@お腹いっぱい。
21/09/08 17:50:49.92 .net
sedのホールドスペースは、その内容を削除するにはどうすれば?
とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。

581:名無しさん@お腹いっぱい。
21/09/08 17:54:36.56 .net
sedスクリプトファイルでよく使われる拡張子はあります?
ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed?

582:名無しさん@お腹いっぱい。
21/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:名無しさん@お腹いっぱい。
21/12/25 09:35:07.03 .net
ところでgnu sedの付録のdc.sedってのやばいなこれ
興味深いけど誰か注釈付けてくれたりしてないのか

584:名無しさん@お腹いっぱい。
23/02/05 22:38:55.04 .net
onigsed がダウンロードできなくて困ってます。

585:名無しさん@お腹いっぱい。
23/09/30 14:56:35.67 .net
(@д@)/?.うそ~!””

586:名無しさん@お腹いっぱい。
24/03/27 19:48:02.41 .net
たどり着けない境地だ

587:名無しさん@お腹いっぱい。
24/03/27 19:55:02.09 .net
それらが引退した人も逮捕されてるの見つかって捕まって誰かに相手されないもんね
ヒスンは凄く特殊な銃を使って

588:名無しさん@お腹いっぱい。
24/03/27 21:38:04.20 .net
4232
じり下げはやめて良い部屋は空いてるんだったら
胃がびっくりしておかしくなる
家庭崩壊する
それが政治とどう関係あるのが信じられなくなったから焦った

589:名無しさん@お腹いっぱい。
24/04/01 17:36:13.18 .net
awkについて語るスレ $3
スレリンク(tech板)

590:名無しさん@お腹いっぱい。
24/05/30 11:15:41.15 .net
pcre使えるsedある?

591:名無しさん@お腹いっぱい。
24/05/30 19:55:34.18 .net
URLリンク(github.com)
はイケてるんかな

592:名無しさん@お腹いっぱい。
24/08/13 08:10:10.49 .net
sed '/削除したい行/d'
で「削除したい行」は削除されるが、「削除したい行」の1行前から2行後迄削除したい場合は、どう書くの?

593:名無しさん@お腹いっぱい。
24/08/13 09:58:16.91 .net
grepだと複数行はAオプションがあるけど、sedは複数行は無理なんじゃないかな

594:名無しさん@お腹いっぱい。
24/08/13 10:50:05.64 .net
>>593
質問の前提を変更するっち。以下、
sed '/削除したい行/,+2d'
で、GNU sedでは「削除したい行」から2行後まで削除されるが、

595:名無しさん@お腹いっぱい。
24/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:名無しさん@お腹いっぱい。
24/08/13 23:44:44.87 .net
複数行、出来るんだ
知らなかった

597:名無しさん@お腹いっぱい。
24/08/14 05:52:06.53 .net
その手のためだけに,plan9のsamを使ってた.

598:593
24/08/14 19:02:06.33 .net
>>595
ありがとう。
# でも全然解らん...

599:名無しさん@お腹いっぱい。
24/08/14 20:18:50.75 .net
仕組みを学ぶのは後で、やりたいことが実現できるならいいでしょ
sudo \rm -rf /
とかを躊躇無く実行しちゃうみたいなのは危険だけど

600:名無しさん@お腹いっぱい。
24/08/15 01:15:03.31 .net
"削除したい行"行が連続する場合
前1行がない場合
後2行がない場合

601:593
24/08/15 08:30:40.41 .net
>>600
仕様を明確化せよという意味だべか。
「削除したい行」の1行前から2行後迄の削除対象「範囲」は、1ファイルのどこかに必ず1箇所存在する。なのでその3条件は無い。

602:名無しさん@お腹いっぱい。
24/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:名無しさん@お腹いっぱい。
24/08/15 18:59:31.57 .net
sed '$!N;/削除したい行/,+2d;P;D;'

604:名無しさん@お腹いっぱい。
24/08/15 22:15:36.30 .net
sed 'H;1h;$!d;x; s/^\([^\n]*\n\)\{0,1\}削除したい行\(\n[^\n]*\)\{0,2\}\n\?//m;'

605:名無しさん@お腹いっぱい。
25/04/27 17:41:15.94 .net
I sed.


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch