sed

0001名無しさん@お腹いっぱい。NGNG
sedスレッド

05405382018/01/18(木) 13:11:30.41
>>539
ありがとうございます。とりあえずその路線で行きます。
素人目にはiフラグとdフラグを同時に使えないというのは極めて不自然というか
非対称な気もしますが……
二つの役割は直交関係にあって,別に依存・背反はないと思うんですよねぇ。

0541名無しさん@お腹いっぱい。2018/01/18(木) 16:19:03.70
GNU sedなら I 大文字が使えるじゃあないか

05425382018/01/18(木) 16:43:03.48
$ printf '%s\n%s\n%s\n' 'AAA' 'Bbb' 'aaa' | gsed -e '/a/Id'
Bbb

おおおおおお!ありがとうございます。Iフラグは知りませんでした!
しかしこれ GNU の独自拡張なんですよねぇ……欲を言えばPOSIX標準に従いたかったんです……
すいません。とりあえず>>539の一文字づつ手動で置き換えるというやりかたで通します。
そして今気付いたんですが iという文字はフラグだけでなくて「行挿入」というコマンドとしての
解釈もあるんですね。だから「id」でdが当該箇所に挿入された形になったんですね。
馬鹿だなぁ俺

0543名無しさん@お腹いっぱい。2018/01/19(金) 06:11:37.28
iもdもコマンドじゃないの?

05445422018/01/19(金) 16:10:54.99
>>543
あーその通りですわ。
逆になぜ id で大文字小文字を無視して削除ができると思ったのか疑問なくらい阿呆でした……。
精進し直します。

# 素人考えで言うと「大文字小文字を無視して検索→その行でコマンド実行」なんて頻繁に実行するだろうに
それに対応した機能が (POSIXの範囲で) 存在しないってのはちょっと頂けないですねぇ……
# 尤も上級者の方々は他の,もっと優美な方法を採ってらっしゃるのかも知れませんが。

0545名無しさん@お腹いっぱい。2018/02/03(土) 04:17:58.88
ある文字がある回数続く*行*を置換することってできないんでしょうか。
...
xbcea
aaa
aaa
aaa
dkjef
...
↑このようなファイルで、
cat ./file | sed -e 's/aaa\naaa\naaa/bbb/g'
とやることで
...
xbcea
bbb
dkjef
...
このような出力が得られることを望んでいるのですが、上記のコマンドでは無理でした。> <
ご教授願いますm(_ _)m

0546名無しさん@お腹いっぱい。2018/02/03(土) 04:47:53.50
printf "xbcea\naaa\naaa\naaa\ndkjef\n" | sed '/aaa/{H;d;};/aaa/!{x;/^$/d;s/aaa\naaa\naaa/bbb/p;x;}'

汚いw

0547名無しさん@お腹いっぱい。2018/02/14(水) 10:22:09.93
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆

0548名無しさん@お腹いっぱい。2018/05/22(火) 03:04:16.83
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

9M87D

0549名無しさん@お腹いっぱい。2018/08/28(火) 06:46:05.19
sedとawkとgrepの違いって?

0550名無しさん@お腹いっぱい。2018/08/31(金) 10:07:25.21
sedはストリームエディタ
grepは文字列検索
awkはスクリプト言語

0551名無しさん@お腹いっぱい。2018/12/13(木) 22:08:13.14
| sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^

この行の後ろに<pfm>から始まる行をくっつけたいんですが、
すごく難しくてどうやっても出来ないです
どうやればいいんでしょうか?

0552名無しさん@お腹いっぱい。2018/12/14(金) 00:16:49.36
イマイチやりたいことがわからず
それに頭の | と尻の ^ はなんざんす
それが行ってことざんすか

0553名無しさん@お腹いっぱい。2018/12/14(金) 00:49:07.99
>>552
nkf.exeを併用しているバッチ内のコードをコピペしただけなので、|と^は関係ないです

>>551ではxmlファイル内の「<station〜>タグで始まる行」と
「<prog〜>タグで始まる行+その次の行」を1行の文字列に連結しているので、
さらにその後ろに<pfm>タグで始まる行を連結して1行にしたい、ということです
(この後に正規表現で最終的にcsv形式に置換しますが割愛)

0554名無しさん@お腹いっぱい。2018/12/15(土) 09:02:56.15
| sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^ <pfm>

くっついた!

0555名無しさん@お腹いっぱい。2018/12/15(土) 19:39:46.09
あ、できたのでもういいです

0556名無しさん@お腹いっぱい。2019/02/09(土) 12:27:35.91
10年以上前にファイル内容を逆順に表示するスクリプトコピペしたけど '1!G;h;$!d'
未だに内容理解できてないぜ!

0557名無しさん@お腹いっぱい。2019/02/09(土) 12:28:51.42
556
スクリプトというかコマンドだな

0558名無しさん@お腹いっぱい。2019/02/09(土) 13:34:35.65
便利なの持ってんじゃん
tacでいいような気もするけど

0559名無しさん@お腹いっぱい。2019/03/12(火) 05:03:42.07
短くても難読すごいから可能ならtacのたぐい、基存のコマンドで処理したい

0560名無しさん@お腹いっぱい。2019/03/19(火) 12:52:18.64
GNU sedじゃなくて、BSDsedをビルドしたい。

OS付属の/usr/binソースはあるけど
https://github.com/freebsd/freebsd/tree/master/usr.bin/sed
sed単体がない。

ビルド出来るBSDsedのURLを教えてください

0561名無しさん@お腹いっぱい。2019/03/19(火) 13:05:15.53
そこの使えばいいんじゃないの
Makefileは適当に改変するとして

0562名無しさん@お腹いっぱい。2019/03/19(火) 13:55:05.58
>>561
make -f MakefileしだんたけどカレントディレクトリのMakefileはそのままでは使えなかった。
オプションが必要なのかも知れないが、よくわからず。

0563名無しさん@お腹いっぱい。2019/03/19(火) 19:46:54.93
>>562
FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。
なんの OS を使ってるのかわからいけど、
pkgsrc が対応している OS なら pkgsrc 導入して、
textproc/nbsed をインストールするのが一番楽だと思う。

http://pkgsrc.org/

0564名無しさん@お腹いっぱい。2019/03/20(水) 04:19:12.82
>>563
MacOSです。ソース側で単体ビルドできる用意されていれば出来ると考えました。
早速挑戦して上手く行ったらここに報告します。

0565名無しさん@お腹いっぱい。2019/03/20(水) 04:24:16.70
>>563
>FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。

これ当たってた。BSDの本家に問い合わせたら560のURLにあるsedのmakefileはOS用らしい。
自分で一からconfigureやmakefileを用意すればビルド出来るのかもね。

sedの最新版を使いたかったが時間あるときに563を試します。

0566名無しさん@お腹いっぱい。2019/03/20(水) 04:45:39.59
Makefileの中見てgcc一発でも行けんだろって気がするが
って自分は前それやってみた気もするが
それくらい試せよ

0567名無しさん@お腹いっぱい。2019/03/20(水) 07:03:53.34
>>566
確か、Linux のcore utilとかだとconfigure sedみたいなかんじで、コマンドの単独コンパイルできる。
manにかかれているメアドでBSDの本家に問い合わせたら
単独コンパイル出来ないとの返事だった。OSビルド用らしい

もう消してしまったが、成功した人がいたら教えてほしい。方法がわかれば再試行する気はあります

0568名無しさん@お腹いっぱい。2019/03/20(水) 07:04:29.16
ごめん、もうsageるべきだった

0569名無しさん@お腹いっぱい。2019/03/26(火) 09:49:12.30
別にageでもいいよ

0570名無しさん@お腹いっぱい。2019/06/24(月) 23:38:04.88
正規表現一致した行と,その一致した行と4行後のみを抽出とかってどうすればいいですか?

0571名無しさん@お腹いっぱい。2019/06/25(火) 13:21:07.60
-n '/re/{p;n;n;n;n;p;}'
とか?

0572名無しさん@お腹いっぱい。2019/06/27(木) 17:00:14.56
*.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);に置き換えればビルドできるじゃん

0573名無しさん@お腹いっぱい。2019/07/02(火) 15:24:44.16
>>572
有難う。諦めていたけど早速やってみます。

0574名無しさん@お腹いっぱい。2019/07/02(火) 22:35:36.02
560です。572のとおりビルドできました。

インストール済のMac版sedは2004年頃なのでバージョンアップできて助かります。
これから100近くあるソースを調べます。

linux版との互換性ない記述を書いてしまいました。
gnu sedもMac上ではビルドできていませんが諦め。

0575名無しさん@お腹いっぱい。2019/07/02(火) 23:46:07.78
マジかよ
gnu sedなんてそれこそ./configureしてmakeだけじゃん
--program-prefix=gくらいつけといた方がいいだろけどさ

0576名無しさん@お腹いっぱい。2019/07/02(火) 23:47:55.81
あー、なんかつい誘導されちゃった感じ...

0577名無しさん@お腹いっぱい。2019/07/03(水) 01:18:23.32
>>575
560です。エラー、コピペしていいですか?長いんですけど。。。

0578名無しさん@お腹いっぱい。2019/07/03(水) 03:40:41.85
gnu sed もインストール出来ました。

bash_profileのパスを最小限にしたらエラーがなくなったみたい?

0579名無しさん@お腹いっぱい。2019/07/03(水) 03:41:36.40
>>577質問は取り消します。有難うございました。

058030GBでも大丈夫 thanks sed2019/07/06(土) 21:39:28.25
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

0581名無しさん@お腹いっぱい。2021/09/08(水) 17:50:49.92
sedのホールドスペースは、その内容を削除するにはどうすれば?
とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。

0582名無しさん@お腹いっぱい。2021/09/08(水) 17:54:36.56
sedスクリプトファイルでよく使われる拡張子はあります?

ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed?

0583名無しさん@お腹いっぱい。2021/12/25(土) 09:31:39.87
>>582
別にこだわる必要はないけど
各種sed処理系付属のexamplesとか覗くとみんな.sedなので、あえて正書法にこだわるならやはり.sedかと
実装を隠したコマンドとして纏めたい、常に特定のオプション(-i等)で起動したい、主コードとsedの拡張チェック等を分離したいならenvを使うとよい
sedによってはオプションを重ねられたり重ねられなかったりするので
#! /usr/bin/env -S sed -f (-i -n -e 'check')

0584名無しさん@お腹いっぱい。2021/12/25(土) 09:35:07.03
ところでgnu sedの付録のdc.sedってのやばいなこれ
興味深いけど誰か注釈付けてくれたりしてないのか

0585名無しさん@お腹いっぱい。2023/02/05(日) 22:38:55.04
onigsed がダウンロードできなくて困ってます。

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

0587名無しさん@お腹いっぱい。2024/03/27(水) 19:48:02.41
たどり着けない境地だ

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

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

0590名無しさん@お腹いっぱい。2024/04/01(月) 17:36:13.18

新着レスの表示
レスを投稿する