sed (606レス)
sed http://mevius.5ch.net/test/read.cgi/unix/1085730992/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: 名無しさん@お腹いっぱい。 [] 04/05/28 16:56 sedスレッド http://mevius.5ch.net/test/read.cgi/unix/1085730992/1
480: 名無しさん@お腹いっぱい。 [sage] 2013/01/05(土) 09:49:03.44 対象になる行の割合にもよるんじゃないの? http://mevius.5ch.net/test/read.cgi/unix/1085730992/480
481: 478 [sage] 2013/01/05(土) 10:26:37.21 1億行、954MBのファイルでやってみた $ seq -w 100000000 > large.txt $ sed --version | head -1 sed (GNU sed) 4.2.2 $ grep '111' large.txt | wc -l 549739 $ for i in {1..3}; do time sed 's/111/999/g' large.txt > /dev/null; done sed 's/111/999/g' large.txt > /dev/null 28.68s user 0.77s system 80% cpu 36.731 total sed 's/111/999/g' large.txt > /dev/null 28.75s user 0.68s system 82% cpu 35.666 total sed 's/111/999/g' large.txt > /dev/null 27.99s user 0.61s system 81% cpu 35.067 total $ for i in {1..3}; do time sed '/111/ s/111/999/g' large.txt > /dev/null; done sed '/111/ s/111/999/g' large.txt > /dev/null 27.68s user 0.63s system 82% cpu 34.418 total sed '/111/ s/111/999/g' large.txt > /dev/null 27.96s user 0.72s system 57% cpu 49.912 total sed '/111/ s/111/999/g' large.txt > /dev/null 28.84s user 0.71s system 81% cpu 36.287 total http://mevius.5ch.net/test/read.cgi/unix/1085730992/481
482: 名無しさん@お腹いっぱい。 [sage] 2013/04/08(月) 00:25:48.59 >type diff diff is /usr/bin/diff > type diff | sed 's,[()],,g;s,^[^/][^/]*,,;q' /usr/bin/diff s,[()],,g;s,^[^/][^/]*,,;q' ってどう解釈すれば良いんですか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/482
483: 名無しさん@お腹いっぱい。 [sage] 2013/04/08(月) 05:56:57.86 人それぞれ で良いんじゃない http://mevius.5ch.net/test/read.cgi/unix/1085730992/483
484: 名無しさん@お腹いっぱい。 [sage] 2013/05/21(火) 06:44:35.71 Macでgsedを使っています。やりたいこと ★のある行と☆のある行の間にある行のうち、ひらかなを含む行の行頭に@を付ける。 (ひらかなが1文字でも入っていれば良い) /★/,/☆/{ /[あ-ん]/s/^/@/ } 無視されてしまうんです。助けてください。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/484
485: 484 [sage] 2013/05/21(火) 08:34:08.57 [あ-ん]がいけなかったみたいです。[あいうえお(中略)ん、。]でできました。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/485
486: 名無しさん@お腹いっぱい。 [sage] 2013/05/21(火) 13:23:01.78 あ-ん♪ http://mevius.5ch.net/test/read.cgi/unix/1085730992/486
487: 名無しさん@お腹いっぱい。 [sage] 2013/05/21(火) 16:08:58.36 >>484 ぽーつ使ってるならssed入れてpcre環境にすれば\p{Hiragana}とか できるんじゃね http://mevius.5ch.net/test/read.cgi/unix/1085730992/487
488: 名無しさん@お腹いっぱい。 [sage] 2013/05/22(水) 03:36:42.23 ごめんワカンナイ http://mevius.5ch.net/test/read.cgi/unix/1085730992/488
489: 名無しさん@お腹いっぱい。 [sage] 2013/05/22(水) 16:53:09.99 ssedって次期GNU sedのこと。 GNUのページでもこの拡張には依存するなって書いてる。 ただ、macでBSD系のsedじゃなくGNU sed使ってるんなら port依存って意味ではあんまり変わんないんじゃない? http://mevius.5ch.net/test/read.cgi/unix/1085730992/489
490: 名無しさん@お腹いっぱい。 [sage] 2014/03/04(火) 03:45:38.92 >>334 横から&亀だが sed '/pattern/ { '"`sed 's/^/i\\\\\n/' <file`"' }' http://mevius.5ch.net/test/read.cgi/unix/1085730992/490
491: 名無しさん@お腹いっぱい。 [sage] 2014/06/03(火) 18:27:21.57 gnuWin32のsed version4.2.1です sedで、"を入れたくて下記のようにしたのですが、うまくいきません。どうしてでしょうか sed -e "s/^/ \"/" hoge.txt > hoge2.txt エスケープの\がうまく利かず、 sed: >を読み込めません というわけわからんエラーメッセージが出てきます ちなみに、 sed -e "s/^/ \\/" hoge.txt > hoge2.txt とかならちゃんと動きます http://mevius.5ch.net/test/read.cgi/unix/1085730992/491
492: 名無しさん@お腹いっぱい。 [sage] 2014/06/28(土) 14:33:09.63 >>491 UNIX板で答えない方が良いのかもしれませんが、適当なスレが無さそうなので windows のコマンドプロンプトで実行しているとして答えます。 cmd.exe の仕様が原因と思われる sed -e "s/^/ "^""/" hoge.txt > hoge2.txt http://mevius.5ch.net/test/read.cgi/unix/1085730992/492
493: 名無しさん@お腹いっぱい。 [sage] 2014/06/28(土) 14:56:57.91 sedを使用する際の注意事項があります。 コンピュータのCPUが何ビットであるか調ベておく事が大切です。 32ビットCPUを搭載したコンピュータには、 32ビット用のsedをインストールすること。 64ビットCPUを搭載したコンピュータには、 64ビット用のsedをインストールすること。 これを間違えれば正常にsedが動作しません。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/493
494: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 00:07:25.20 sedの使い方がわからず、試行錯誤しているのですが、うまくいきません。 行の先頭に特定の文字列(たとえば"abc")があったらその行を丸ごと"xxxxxxxxxxx"に置換するにはどうすれば良いでしょうか。 例: abc123456 が xxxxxxxxxxx に変換さえるイメージです。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/494
495: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 01:37:59.80 >>494 sed -n /^abc/p sed s/^abc.*$/xxxxxxxxxxx/ http://mevius.5ch.net/test/read.cgi/unix/1085730992/495
496: 名無しさん@お腹いっぱい。 [] 2014/08/20(水) 01:39:49.69 パイプで使うバージョンを書く |sed 's/^abc.*/xxxxxxxxxxx/' http://mevius.5ch.net/test/read.cgi/unix/1085730992/496
497: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 02:29:51.22 sed '/^abc/cxxxxxxxxxxx' http://mevius.5ch.net/test/read.cgi/unix/1085730992/497
498: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 03:06:02.58 abc -> xxx abc123 -> xxxxxx abc12345 -> xxxxxxxx をsedでやるならどう書くんだろ http://mevius.5ch.net/test/read.cgi/unix/1085730992/498
499: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 06:22:02.63 >>498 s/./x/g http://mevius.5ch.net/test/read.cgi/unix/1085730992/499
500: 名無しさん@お腹いっぱい。 [sage] 2014/08/20(水) 10:13:13.33 >>494 sed '/^abc/s/./x/g' かな? http://mevius.5ch.net/test/read.cgi/unix/1085730992/500
501: 名無しさん@お腹いっぱい。 [sage] 2014/09/17(水) 02:37:37.33 パスワードのゼロ埋め(ゼロパディング)と見た。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/501
502: 名無しさん@お腹いっぱい。 [] 2014/10/21(火) 08:56:25.00 バックスラッシュって読みやすいか?日本語だと使い道無いし。 プログラミングで正規表現書いてると、 s/\dhoge\sfuga\s/hoge/ ↑似たような記号ばっかりで読みづらいw s/¥dhoge¥sfuga¥s/hoge/ ↑こっちのほうが読みやすい http://mevius.5ch.net/test/read.cgi/unix/1085730992/502
503: 名無しさん@お腹いっぱい。 [sage] 2014/10/21(火) 10:00:39.43 使い道ある記号だったらエスケープシーケンスにも 円記号ねじ込むにも適さなかっただろうよ http://mevius.5ch.net/test/read.cgi/unix/1085730992/503
504: 名無しさん@お腹いっぱい。 [sage] 2014/10/21(火) 11:48:25.80 最近可愛く見えてきた。意味を持たない組み合わせに腹を立てたり。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/504
505: 名無しさん@お腹いっぱい。 [sage] 2014/10/21(火) 13:00:32.47 スラッシュとバックスラッシュが紛らわしいんならスラッシュ以外の 文字を区切りに使えばいいんでないの? http://mevius.5ch.net/test/read.cgi/unix/1085730992/505
506: 名無しさん@お腹いっぱい。 [sage] 2014/10/21(火) 13:05:36.87 区切りを変更できるのはsコマンドとかの時だけ http://mevius.5ch.net/test/read.cgi/unix/1085730992/506
507: 名無しさん@お腹いっぱい。 [] 2014/11/06(木) 07:19:05.88 1,/hoge/ のようにaddressに正規表現を使う時のスラッシュを 他の記号に変えることはできますか? s@http://@https://@ のようなことをしたいのです http://mevius.5ch.net/test/read.cgi/unix/1085730992/507
508: 名無しさん@お腹いっぱい。 [sage] 2014/11/06(木) 08:27:36.11 >>506 にあるようにできない。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/508
509: 名無しさん@お腹いっぱい。 [sage] 2014/11/06(木) 08:42:54.81 できる実装もあるかもしれない http://mevius.5ch.net/test/read.cgi/unix/1085730992/509
510: 名無しさん@お腹いっぱい。 [sage] 2014/11/06(木) 09:21:40.14 コピペ改変にかまうな http://mevius.5ch.net/test/read.cgi/unix/1085730992/510
511: 名無しさん@お腹いっぱい。 [] 2014/12/23(火) 16:27:26.38 他人が書いたコードで、例えば文字列が、 11 AAA [BBB] CCC/DDD.txt EEE FFF-01 だった場合に、ここから[]内の文字(BBB) を抜き出すために、 sed -e 's/\[//g' -e 's/\]//g' | awk '{ print $3 }' というスクリプトで BBB を取得しています。 このスクリプトを変更して、DDD を取得したいのですが、 どう書けば良いのでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/511
512: 名無しさん@お腹いっぱい。 [sage] 2014/12/23(火) 19:23:47.26 s,.*/,,; s,\.txt.*,, http://mevius.5ch.net/test/read.cgi/unix/1085730992/512
513: 名無しさん@お腹いっぱい。 [sage] 2014/12/24(水) 15:41:51.14 ありがとう http://mevius.5ch.net/test/read.cgi/unix/1085730992/513
514: 名無しさん@お腹いっぱい。 [sage] 2014/12/28(日) 06:55:35.52 >>507 1,\@hoge@ linuxで確認済み 検索でここにたどり着いた人の為と、何処のコピペか検索してもそれらしいものが出なかったので、貼っておきます POSIX sed http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html In a context address, the construction "\cBREc", where c is any character other than <backslash> or <newline>, shall be identical to "/BRE/". If the character designated by c appears following a <backslash>, then it shall be considered to be that literal character, which shall not terminate the BRE. For example, in the context address "\xabc\xdefx", the second x stands for itself, so that the BRE is "abcxdef". BSD On-line Manual of "sed" http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=sed&dir=jpman-5.4.0%2Fman§=0 1. コンテキストアドレスにおいて、バックスラッシュ (``\'') と改行以外の 文字を正規表現の区切りとして用いることできます。 区切り文字の直前に バックスラッシュを置くことで、区切り文字をリテラルに解釈させることが できます。 たとえば、コンテキストアドレス \xabc\xdefx において、区切 り文字は ``x'' で、2つめの ``x'' は ``x'' という文字を表します。 よっ て、正規表現は ``abcxdef'' と解釈されます。 LINUX Man page of SED http://linuxjm.sourceforge.jp/html/GNU_sed/man1/sed.1.html /regexp/ 正規表現 regexp にマッチした行にマッチする。 \cregexpc 正規表現 regexp にマッチした行にマッチする。c には任意の文字を指定できる。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/514
515: 名無しさん@お腹いっぱい。 [sage] 2014/12/28(日) 17:04:08.20 おおお、グレート義太夫 http://mevius.5ch.net/test/read.cgi/unix/1085730992/515
516: 名無しさん@お腹いっぱい。 [sage] 2016/02/10(水) 23:22:09.08 どうにも理解が出来ず教えて欲しいのですが http://sed.sourceforge.net/sed1line.txt から # print paragraph if it contains AAA (blank lines separate paragraphs) sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;' これがどうにもわかりません。 H;$!d;の$!dが何故必要なのか? 動作の流れを教えて頂けないでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/516
517: 516 [] 2016/02/21(日) 00:09:27.85 age http://mevius.5ch.net/test/read.cgi/unix/1085730992/517
518: 名無しさん@お腹いっぱい。 [sage] 2016/02/21(日) 01:34:16.62 タダで教えろって? http://mevius.5ch.net/test/read.cgi/unix/1085730992/518
519: 名無しさん@お腹いっぱい。 [sage] 2016/02/21(日) 10:27:51.16 dがあるのは段落の区切りまで何も出力させないため ファイル末尾も段落の区切りだから$!が要る ファイル末尾に必ず空行があるなら$!は要らない dでそのサイクルが終了することは知ってますね? http://mevius.5ch.net/test/read.cgi/unix/1085730992/519
520: 名無しさん@お腹いっぱい。 [sage] 2016/02/21(日) 10:54:53.96 10日も呆けーと待ってたことに驚き http://mevius.5ch.net/test/read.cgi/unix/1085730992/520
521: 名無しさん@お腹いっぱい。 [sage] 2016/02/21(日) 13:02:47.07 でも教えてもらえたじゃないかw http://mevius.5ch.net/test/read.cgi/unix/1085730992/521
522: 名無しさん@お腹いっぱい。 [sage] 2016/02/21(日) 14:02:51.01 自分で試せば小一時間で気付くのに、と思う http://mevius.5ch.net/test/read.cgi/unix/1085730992/522
523: 516 [sage] 2016/02/21(日) 16:55:28.79 >>519 有り難うございます。助かりました。 !dをpの様に認識してしまっていて次のサイクルに移行させる イメージがなく、$!dを最終行を表示させるとしか思ってなくて 色々試してもどうにも腑に落ちないもので質問させて頂きました。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/523
524: 名無しさん@お腹いっぱい。 [] 2016/04/28(木) 22:19:31.31 sedで桁そろえってどうしたらいいですかる 具体的にはls -l で出てきた結果のうち、ファイル名を最初に左揃え、ファイルサイズを右揃えで出力したいのですが、 sedコマンドだけで可能ですか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/524
525: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 06:51:34.85 そういうのは awk で。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/525
526: 名無しさん@お腹いっぱい。 [] 2016/04/29(金) 07:15:23.81 どうしてもsedだけでやたいんです! お願いします! http://mevius.5ch.net/test/read.cgi/unix/1085730992/526
527: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 07:58:13.44 UNIX哲学に戻るんだ。 1つのことをうまくやる、ものを組み合わせればいいんだから、まずはawkでやってみる。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/527
528: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 08:26:18.75 awkでもいいが、シェル内部コマンドだけでもできるぞ。 ls -l | while read m l u g s t1 t2 t3 f do printf http://mevius.5ch.net/test/read.cgi/unix/1085730992/528
529: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 08:29:01.55 ありゃ? 記号があると書き込みが切れる。記号を全角にした。半角に直して読んでね。 ls -l | while read m l u g s t1 t2 t3 f do printf ”%-20s %8d %s\n” ”$f” ”$s” done http://mevius.5ch.net/test/read.cgi/unix/1085730992/529
530: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 09:51:04.97 FreeBSD$ stat -f %-20N%8z * Linux$ stat -c %-20n%8s * http://mevius.5ch.net/test/read.cgi/unix/1085730992/530
531: 名無しさん@お腹いっぱい。 [sage] 2016/04/29(金) 10:02:30.45 sedでの右揃えは、一旦中身のみを切り出してから左側に余分なスペースを加えてから 右から文字数固定で切り取る。 左揃えはその逆。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/531
532: 名無しさん@お腹いっぱい。 [sage] 2016/08/11(木) 22:51:26.97 >>144の更新 NetBSDとOpenBSDの標準sedで-iが導入。 入力ファイルを書き換えるには? ・-i オプションをつかう ・-i オプションがないsedをつかっているなら in-place editing 対応の sed の導入を検討する ・ed を使うことを検討する ・perl を使うことを検討する ・一時ファイルを必要としないファイル命名法を検討する ・http://www.idaemons.org/projects/inplace/ を使う ・(rm hoge.dat; sed 's/aaa/bbb/' > hoge.dat) < hoge.dat FreeBSD の標準 sed に -i オプションが取り入れられたのは 4.7R でそれ以前には無い。 NetBSD の標準 sed に -i オプションが取り入れられたのは 7.0 でそれ以前には無い。 OpenBSDのの標準 sed に -i オプションが取り入れられたのは 5.8 でそれ以前には無い。 MacOSX の 標準 sed は FreeBSD 由来なので元になるバージョンに依存する。 MacOSX 10.3以降は FreeBSD 5.1R由来なので、 -iオプションはある。 以前のGNU sed には in-place editing 機能はない (Changelog によると 2001-09-25 ) (3.02には in place オプションは無い) http://mevius.5ch.net/test/read.cgi/unix/1085730992/532
533: 名無しさん@お腹いっぱい。 [sage] 2017/03/17(金) 14:26:32.28 データハンドリングとしては、 入力ファイルをコピーして更新をかける 更新処理が終わったら、入力ファイルを削除して更新ファイルをりネームして入力ファイルとする みたいな方法で必要十分。 なんでもかんでもツールで処理するのではなく、OSが得意な機能はOSのものを使う。 クラッシュがいつ起こってもデータが確保できるのは、そういう、むしろドンくさい方法。 お遊びならいざしらず、仕事では安全確実性が少しでも高い方を選ぶのがプロ。 無論、履歴から復元なんてのも、データによっては必要だが、 処理が複雑になれば、一般的にトラブルも増える。 どこまで何をやるかは、ひとえにそのデータの重要性にかかっている。 バックアップから戻してもたいした事がないなら、何やってもいいだろう。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/533
534: 名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 14:32:07.16 >>274 どうだろうね。数式の入った文章を写植 は、昔の印刷物のほうが上でしょ。 印刷屋に頼んでもtexの設定をそのまま つかわずindesignに読み込むから、 ひどいものだ http://mevius.5ch.net/test/read.cgi/unix/1085730992/534
535: 名無しさん@そうだ選挙に行こう! Go to vote! [sage] 2017/10/22(日) 15:59:51.51 昔も今もTeXでやってくれる印刷屋に頼めばいいじゃん。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/535
536: 名無しさん@お腹いっぱい。 [sage] 2017/12/08(金) 20:25:27.67 今も昔も餅屋のふりした餅屋はたくさんあるからな〜。餅の見る目のない会社だったってことで。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/536
537: 名無しさん@お腹いっぱい。 [] 2017/12/29(金) 10:21:45.77 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 8DL33JQ0HX http://mevius.5ch.net/test/read.cgi/unix/1085730992/537
538: 名無しさん@お腹いっぱい。 [age] 2018/01/18(木) 12:08:00.54 https://mevius.5ch.net/test/read.cgi/unix/1489979246/l50 ここから来ました。 sedでiフラグとdフラグを両方立てることってできないのでしょうか。 $ cat file aaa AAA $ cat file | sed -e '/aaa/id' AAA d aaa http://mevius.5ch.net/test/read.cgi/unix/1085730992/538
539: 名無しさん@お腹いっぱい。 [sage] 2018/01/18(木) 12:57:27.52 頑張って /[Aa]\{3\}/d と書く 今時の正規表現修飾子とか使えるsedがあるなら俺も知りたい http://mevius.5ch.net/test/read.cgi/unix/1085730992/539
540: 538 [sage] 2018/01/18(木) 13:11:30.41 >>539 ありがとうございます。とりあえずその路線で行きます。 素人目にはiフラグとdフラグを同時に使えないというのは極めて不自然というか 非対称な気もしますが…… 二つの役割は直交関係にあって,別に依存・背反はないと思うんですよねぇ。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/540
541: 名無しさん@お腹いっぱい。 [sage] 2018/01/18(木) 16:19:03.70 GNU sedなら I 大文字が使えるじゃあないか http://mevius.5ch.net/test/read.cgi/unix/1085730992/541
542: 538 [sage] 2018/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が当該箇所に挿入された形になったんですね。 馬鹿だなぁ俺 http://mevius.5ch.net/test/read.cgi/unix/1085730992/542
543: 名無しさん@お腹いっぱい。 [sage] 2018/01/19(金) 06:11:37.28 iもdもコマンドじゃないの? http://mevius.5ch.net/test/read.cgi/unix/1085730992/543
544: 542 [sage] 2018/01/19(金) 16:10:54.99 >>543 あーその通りですわ。 逆になぜ id で大文字小文字を無視して削除ができると思ったのか疑問なくらい阿呆でした……。 精進し直します。 # 素人考えで言うと「大文字小文字を無視して検索→その行でコマンド実行」なんて頻繁に実行するだろうに それに対応した機能が (POSIXの範囲で) 存在しないってのはちょっと頂けないですねぇ…… # 尤も上級者の方々は他の,もっと優美な方法を採ってらっしゃるのかも知れませんが。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/544
545: 名無しさん@お腹いっぱい。 [age] 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 http://mevius.5ch.net/test/read.cgi/unix/1085730992/545
546: 名無しさん@お腹いっぱい。 [sage] 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 http://mevius.5ch.net/test/read.cgi/unix/1085730992/546
547: 名無しさん@お腹いっぱい。 [sage] 2018/02/14(水) 10:22:09.93 ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、 改憲議員が3分の2を超えております。『憲法改正国民投票法』、 でググってみてください。国会の発議はすでに可能です。 平和は勝ち取るものです。お願い致します。☆☆ http://mevius.5ch.net/test/read.cgi/unix/1085730992/547
548: 名無しさん@お腹いっぱい。 [] 2018/05/22(火) 03:04:16.83 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 9M87D http://mevius.5ch.net/test/read.cgi/unix/1085730992/548
549: 名無しさん@お腹いっぱい。 [sage] 2018/08/28(火) 06:46:05.19 sedとawkとgrepの違いって? http://mevius.5ch.net/test/read.cgi/unix/1085730992/549
550: 名無しさん@お腹いっぱい。 [] 2018/08/31(金) 10:07:25.21 sedはストリームエディタ grepは文字列検索 awkはスクリプト言語 http://mevius.5ch.net/test/read.cgi/unix/1085730992/550
551: 名無しさん@お腹いっぱい。 [sage] 2018/12/13(木) 22:08:13.14 | sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^ この行の後ろに<pfm>から始まる行をくっつけたいんですが、 すごく難しくてどうやっても出来ないです どうやればいいんでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/551
552: 名無しさん@お腹いっぱい。 [sage] 2018/12/14(金) 00:16:49.36 イマイチやりたいことがわからず それに頭の | と尻の ^ はなんざんす それが行ってことざんすか http://mevius.5ch.net/test/read.cgi/unix/1085730992/552
553: 名無しさん@お腹いっぱい。 [sage] 2018/12/14(金) 00:49:07.99 >>552 nkf.exeを併用しているバッチ内のコードをコピペしただけなので、|と^は関係ないです >>551ではxmlファイル内の「<station〜>タグで始まる行」と 「<prog〜>タグで始まる行+その次の行」を1行の文字列に連結しているので、 さらにその後ろに<pfm>タグで始まる行を連結して1行にしたい、ということです (この後に正規表現で最終的にcsv形式に置換しますが割愛) http://mevius.5ch.net/test/read.cgi/unix/1085730992/553
554: 名無しさん@お腹いっぱい。 [sage] 2018/12/15(土) 09:02:56.15 | sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^ <pfm> くっついた! http://mevius.5ch.net/test/read.cgi/unix/1085730992/554
555: 名無しさん@お腹いっぱい。 [sage] 2018/12/15(土) 19:39:46.09 あ、できたのでもういいです http://mevius.5ch.net/test/read.cgi/unix/1085730992/555
556: 名無しさん@お腹いっぱい。 [sage] 2019/02/09(土) 12:27:35.91 10年以上前にファイル内容を逆順に表示するスクリプトコピペしたけど '1!G;h;$!d' 未だに内容理解できてないぜ! http://mevius.5ch.net/test/read.cgi/unix/1085730992/556
557: 名無しさん@お腹いっぱい。 [sage] 2019/02/09(土) 12:28:51.42 556 スクリプトというかコマンドだな http://mevius.5ch.net/test/read.cgi/unix/1085730992/557
558: 名無しさん@お腹いっぱい。 [sage] 2019/02/09(土) 13:34:35.65 便利なの持ってんじゃん tacでいいような気もするけど http://mevius.5ch.net/test/read.cgi/unix/1085730992/558
559: 名無しさん@お腹いっぱい。 [sage] 2019/03/12(火) 05:03:42.07 短くても難読すごいから可能ならtacのたぐい、基存のコマンドで処理したい http://mevius.5ch.net/test/read.cgi/unix/1085730992/559
560: 名無しさん@お腹いっぱい。 [] 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を教えてください http://mevius.5ch.net/test/read.cgi/unix/1085730992/560
561: 名無しさん@お腹いっぱい。 [sage] 2019/03/19(火) 13:05:15.53 そこの使えばいいんじゃないの Makefileは適当に改変するとして http://mevius.5ch.net/test/read.cgi/unix/1085730992/561
562: 名無しさん@お腹いっぱい。 [] 2019/03/19(火) 13:55:05.58 >>561 make -f MakefileしだんたけどカレントディレクトリのMakefileはそのままでは使えなかった。 オプションが必要なのかも知れないが、よくわからず。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/562
563: 名無しさん@お腹いっぱい。 [sage] 2019/03/19(火) 19:46:54.93 >>562 FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。 なんの OS を使ってるのかわからいけど、 pkgsrc が対応している OS なら pkgsrc 導入して、 textproc/nbsed をインストールするのが一番楽だと思う。 http://pkgsrc.org/ http://mevius.5ch.net/test/read.cgi/unix/1085730992/563
564: 名無しさん@お腹いっぱい。 [] 2019/03/20(水) 04:19:12.82 >>563 MacOSです。ソース側で単体ビルドできる用意されていれば出来ると考えました。 早速挑戦して上手く行ったらここに報告します。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/564
565: 名無しさん@お腹いっぱい。 [] 2019/03/20(水) 04:24:16.70 >>563 >FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。 これ当たってた。BSDの本家に問い合わせたら560のURLにあるsedのmakefileはOS用らしい。 自分で一からconfigureやmakefileを用意すればビルド出来るのかもね。 sedの最新版を使いたかったが時間あるときに563を試します。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/565
566: 名無しさん@お腹いっぱい。 [sage] 2019/03/20(水) 04:45:39.59 Makefileの中見てgcc一発でも行けんだろって気がするが って自分は前それやってみた気もするが それくらい試せよ http://mevius.5ch.net/test/read.cgi/unix/1085730992/566
567: 名無しさん@お腹いっぱい。 [] 2019/03/20(水) 07:03:53.34 >>566 確か、Linux のcore utilとかだとconfigure sedみたいなかんじで、コマンドの単独コンパイルできる。 manにかかれているメアドでBSDの本家に問い合わせたら 単独コンパイル出来ないとの返事だった。OSビルド用らしい もう消してしまったが、成功した人がいたら教えてほしい。方法がわかれば再試行する気はあります http://mevius.5ch.net/test/read.cgi/unix/1085730992/567
568: 名無しさん@お腹いっぱい。 [sage] 2019/03/20(水) 07:04:29.16 ごめん、もうsageるべきだった http://mevius.5ch.net/test/read.cgi/unix/1085730992/568
569: 名無しさん@お腹いっぱい。 [] 2019/03/26(火) 09:49:12.30 別にageでもいいよ http://mevius.5ch.net/test/read.cgi/unix/1085730992/569
570: 名無しさん@お腹いっぱい。 [sage] 2019/06/24(月) 23:38:04.88 正規表現一致した行と,その一致した行と4行後のみを抽出とかってどうすればいいですか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/570
571: 名無しさん@お腹いっぱい。 [sage] 2019/06/25(火) 13:21:07.60 -n '/re/{p;n;n;n;n;p;}' とか? http://mevius.5ch.net/test/read.cgi/unix/1085730992/571
572: 名無しさん@お腹いっぱい。 [sage] 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);に置き換えればビルドできるじゃん http://mevius.5ch.net/test/read.cgi/unix/1085730992/572
573: 名無しさん@お腹いっぱい。 [sage] 2019/07/02(火) 15:24:44.16 >>572 有難う。諦めていたけど早速やってみます。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/573
574: 名無しさん@お腹いっぱい。 [sage] 2019/07/02(火) 22:35:36.02 560です。572のとおりビルドできました。 インストール済のMac版sedは2004年頃なのでバージョンアップできて助かります。 これから100近くあるソースを調べます。 linux版との互換性ない記述を書いてしまいました。 gnu sedもMac上ではビルドできていませんが諦め。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/574
575: 名無しさん@お腹いっぱい。 [sage] 2019/07/02(火) 23:46:07.78 マジかよ gnu sedなんてそれこそ./configureしてmakeだけじゃん --program-prefix=gくらいつけといた方がいいだろけどさ http://mevius.5ch.net/test/read.cgi/unix/1085730992/575
576: 名無しさん@お腹いっぱい。 [sage] 2019/07/02(火) 23:47:55.81 あー、なんかつい誘導されちゃった感じ... http://mevius.5ch.net/test/read.cgi/unix/1085730992/576
577: 名無しさん@お腹いっぱい。 [sage] 2019/07/03(水) 01:18:23.32 >>575 560です。エラー、コピペしていいですか?長いんですけど。。。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/577
578: 名無しさん@お腹いっぱい。 [sage] 2019/07/03(水) 03:40:41.85 gnu sed もインストール出来ました。 bash_profileのパスを最小限にしたらエラーがなくなったみたい? http://mevius.5ch.net/test/read.cgi/unix/1085730992/578
579: 名無しさん@お腹いっぱい。 [sage] 2019/07/03(水) 03:41:36.40 >>577質問は取り消します。有難うございました。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/579
580: 30GBでも大丈夫 thanks sed [sage] 2019/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 http://mevius.5ch.net/test/read.cgi/unix/1085730992/580
581: 名無しさん@お腹いっぱい。 [sage] 2021/09/08(水) 17:50:49.92 sedのホールドスペースは、その内容を削除するにはどうすれば? とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/581
582: 名無しさん@お腹いっぱい。 [sage] 2021/09/08(水) 17:54:36.56 sedスクリプトファイルでよく使われる拡張子はあります? ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed? http://mevius.5ch.net/test/read.cgi/unix/1085730992/582
583: 名無しさん@お腹いっぱい。 [sage] 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') http://mevius.5ch.net/test/read.cgi/unix/1085730992/583
584: 名無しさん@お腹いっぱい。 [sage] 2021/12/25(土) 09:35:07.03 ところでgnu sedの付録のdc.sedってのやばいなこれ 興味深いけど誰か注釈付けてくれたりしてないのか http://mevius.5ch.net/test/read.cgi/unix/1085730992/584
585: 名無しさん@お腹いっぱい。 [] 2023/02/05(日) 22:38:55.04 onigsed がダウンロードできなくて困ってます。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/585
586: 名無しさん@お腹いっぱい。 [sage] 2023/09/30(土) 14:56:35.67 (@д@)/?.うそ~!”” http://mevius.5ch.net/test/read.cgi/unix/1085730992/586
587: 名無しさん@お腹いっぱい。 [] 2024/03/27(水) 19:48:02.41 たどり着けない境地だ http://mevius.5ch.net/test/read.cgi/unix/1085730992/587
588: 名無しさん@お腹いっぱい。 [] 2024/03/27(水) 19:55:02.09 それらが引退した人も逮捕されてるの見つかって捕まって誰かに相手されないもんね ヒスンは凄く特殊な銃を使って http://mevius.5ch.net/test/read.cgi/unix/1085730992/588
589: 名無しさん@お腹いっぱい。 [] 2024/03/27(水) 21:38:04.20 4232 じり下げはやめて良い部屋は空いてるんだったら 胃がびっくりしておかしくなる 家庭崩壊する それが政治とどう関係あるのが信じられなくなったから焦った http://mevius.5ch.net/test/read.cgi/unix/1085730992/589
590: 名無しさん@お腹いっぱい。 [] 2024/04/01(月) 17:36:13.18 awkについて語るスレ $3 https://mevius.5ch.net/test/read.cgi/tech/1600054668/ http://mevius.5ch.net/test/read.cgi/unix/1085730992/590
591: 名無しさん@お腹いっぱい。 [sage] 2024/05/30(木) 11:15:41.15 pcre使えるsedある? http://mevius.5ch.net/test/read.cgi/unix/1085730992/591
592: 名無しさん@お腹いっぱい。 [sage] 2024/05/30(木) 19:55:34.18 https://github.com/christopherfujino/sed-pcre はイケてるんかな http://mevius.5ch.net/test/read.cgi/unix/1085730992/592
593: 名無しさん@お腹いっぱい。 [] 2024/08/13(火) 08:10:10.49 sed '/削除したい行/d' で「削除したい行」は削除されるが、「削除したい行」の1行前から2行後迄削除したい場合は、どう書くの? http://mevius.5ch.net/test/read.cgi/unix/1085730992/593
594: 名無しさん@お腹いっぱい。 [sage] 2024/08/13(火) 09:58:16.91 grepだと複数行はAオプションがあるけど、sedは複数行は無理なんじゃないかな http://mevius.5ch.net/test/read.cgi/unix/1085730992/594
595: 名無しさん@お腹いっぱい。 [] 2024/08/13(火) 10:50:05.64 >>594 質問の前提を変更するっち。以下、 sed '/削除したい行/,+2d' で、GNU sedでは「削除したい行」から2行後まで削除されるが、 http://mevius.5ch.net/test/read.cgi/unix/1085730992/595
596: 名無しさん@お腹いっぱい。 [sage] 2024/08/13(火) 22:27:16.64 sed -n '{ /削除したい行/{ g; s/\n[^\n]*$//; h; n; n; bc }; H; s/.*//; :c }; ${ g; s/\n//; p }' 黒魔術じみたコードになっちゃった… http://mevius.5ch.net/test/read.cgi/unix/1085730992/596
597: 名無しさん@お腹いっぱい。 [sage] 2024/08/13(火) 23:44:44.87 複数行、出来るんだ 知らなかった http://mevius.5ch.net/test/read.cgi/unix/1085730992/597
598: 名無しさん@お腹いっぱい。 [] 2024/08/14(水) 05:52:06.53 その手のためだけに,plan9のsamを使ってた. http://mevius.5ch.net/test/read.cgi/unix/1085730992/598
599: 593 [] 2024/08/14(水) 19:02:06.33 >>596 ありがとう。 # でも全然解らん... http://mevius.5ch.net/test/read.cgi/unix/1085730992/599
600: 名無しさん@お腹いっぱい。 [sage] 2024/08/14(水) 20:18:50.75 仕組みを学ぶのは後で、やりたいことが実現できるならいいでしょ sudo \rm -rf / とかを躊躇無く実行しちゃうみたいなのは危険だけど http://mevius.5ch.net/test/read.cgi/unix/1085730992/600
601: 名無しさん@お腹いっぱい。 [sage] 2024/08/15(木) 01:15:03.31 "削除したい行"行が連続する場合 前1行がない場合 後2行がない場合 http://mevius.5ch.net/test/read.cgi/unix/1085730992/601
602: 593 [] 2024/08/15(木) 08:30:40.41 >>601 仕様を明確化せよという意味だべか。 「削除したい行」の1行前から2行後迄の削除対象「範囲」は、1ファイルのどこかに必ず1箇所存在する。なのでその3条件は無い。 http://mevius.5ch.net/test/read.cgi/unix/1085730992/602
603: 名無しさん@お腹いっぱい。 [sage] 2024/08/15(木) 18:45:42.03 >>596 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 }' http://mevius.5ch.net/test/read.cgi/unix/1085730992/603
604: 名無しさん@お腹いっぱい。 [sage] 2024/08/15(木) 18:59:31.57 sed '$!N;/削除したい行/,+2d;P;D;' http://mevius.5ch.net/test/read.cgi/unix/1085730992/604
605: 名無しさん@お腹いっぱい。 [sage] 2024/08/15(木) 22:15:36.30 sed 'H;1h;$!d;x; s/^\([^\n]*\n\)\{0,1\}削除したい行\(\n[^\n]*\)\{0,2\}\n\?//m;' http://mevius.5ch.net/test/read.cgi/unix/1085730992/605
606: 名無しさん@お腹いっぱい。 [] 2025/04/27(日) 17:41:15.94 I sed. http://mevius.5ch.net/test/read.cgi/unix/1085730992/606
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s