[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2ch.scのread.cgiへ]
Update time : 10/31 04:49 / Filesize : 140 KB / Number-of Response : 607
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

sed



1 名前:名無しさん@お腹いっぱい。 [04/05/28 16:56.net]
sedスレッド

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/08/17(火) 13:08:10 .net]
yコマンドで"/"を対象に入れたいんですが出来ないんでしょうか
初歩的ですいません

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/08/17(火) 13:23:28 .net]
>>350
sed y,abc,ABC,

とかできるから、

sed 'y,ab/,ab%,'

もできる。

352 名前:350 mailto:sage [2010/08/17(火) 23:26:44 .net]
そうか、区切り文字変えられるのsコマンドばかりじゃないんですね。
どうもありがとうございました。

353 名前:初心者 [2010/10/23(土) 20:01:51 .net]
sedでシェルすくりぷとの行つなぎバックスラッシューを消して、繋ぐことできますか?
perlなら-pe "s/\\\n//g"でできます。
edでも、awkでもできれば、教えていただけませんか?

354 名前:名無しさん@お腹いっぱい。 [2010/10/24(日) 13:40:00 .net]
できる

355 名前:初心者 mailto:sage [2010/10/24(日) 21:13:33 .net]
できました ありがとう

356 名前:初心者 [2010/10/25(月) 22:07:05 .net]
できないようですね、残念です。

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/10/26(火) 19:38:19 .net]
sed -e ':lbl' -e '/[^\\]$/b' -e 's/\\$//' -e N -e 's/\n//' -e 'b lbl'

置換パターンに\nを許さない場合は
sed -e ':lbl' -e '/[^\\]$/b' -e 's/\\$//' -e N -e 's/
//' -e 'b lbl'

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/10/28(木) 08:37:34 .net]
踊っているように見えて仕方がない
echo "000000$NUM" | sed -e 's/.*\(..\)\(..\)\(..\)/\1\2\3/'




359 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/28(日) 18:33:17 .net]
sedでファイルのある部分までをファイル1、それ以降をファイル2に出力ってスマートにできませんか?
例えば100行のsample.txtというファイルで、

sed -e "50q" < sample.txt > sample1.txt
sed -e "1,50d" < sample.txt > sample2.txt

の様にするのは無駄におもえてしまいます。

360 名前:名無しさん@お腹いっぱい。 [2010/11/28(日) 18:39:52 .net]
sed -ne '1,50w sample1.txt' -e '51,$w sample2.txt' < sample.txt
とか?


361 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/28(日) 18:48:58 .net]
split -50 sample.txt; mv xaa sample1.txt; mv xab sample2.txt

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/28(日) 19:52:27 .net]
>>360,361
ありがとうございました。勉強になります。

363 名前:名無しさん@お腹いっぱい。 [2010/12/22(水) 23:54:50 .net]
入力テキストを

1行目の内容 2行目の内容
2行目の内容 3行目の内容
:
最終-2行目の内容 最終-1行の内容
最終-1行目の内容 最終行の内容

という形(隣り合った行の値を空白で連結する)に変換するにはどう書けば
よいでしょうか。
sed -ne '1!p;$!p'
と通せば先頭末尾以外の行を2回出力できたので、
これを2行分ずつくっつければ出来そうなのですが…


364 名前:名無しさん@お腹いっぱい。 [2010/12/23(木) 00:03:02 .net]
¥n ってどのsedでも使えるんだっけ?

$ seq 1 10 | sed -ne '1!p;$!p' | sed 'N;s/¥n/ /'
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10


365 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/12/23(木) 00:47:03 .net]
seq 1 10 | sed -ne '1h;1!{H;x;s/\n/ /;p}'

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/12/26(日) 21:44:54 .net]
s/seq/jot/

367 名前:名無しさん@お腹いっぱい。 [2011/01/15(土) 11:45:22 .net]
unixの基礎概念という本の中に
a 21
is 10
this 3
というtest.txtファイルに対して、
sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
とすると結果は
21 a
10 is
3 this
になると書いてありましたが、実行してみると並びはかわりませんでした。

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 11:49:07 .net]
>>367
確かに。それじゃぁ一番左側の .* が、最長一致で行全体に一致しちゃうから、
並びが変わらなくて正解。

悪書の書名晒して。



369 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 11:50:52 .net]
久野さんらしくないミスだな。

確かに変わらないね。

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 11:51:32 .net]
>>367
真中の * の直前のスペース、
スペース2つじゃないの?

コピペするとスペースが1つとかになるので注意。

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 11:54:36 .net]
これかな? www.amazon.co.jp/dp/4756144772
久野先生の本だけど、そんなのが混ざってるのか。

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:01:42 .net]
>>371
はいそれです。解説にも
「これはどう読むかというと、『入力行を任意の文字列1と、空白のならび2と、また別の任意の文字列3
にマッチさせ、それ全体を3、2、1の順でつなげたものに置き換える』という意味になる。」と書いてあります。

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:06:04 .net]
>>372
なら、>>370の指摘通りで、キミが間違っている。
× sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
○ sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:10:21 .net]
2chに不慣れな感じ

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:11:56 .net]
專ブラなら安価ポップアップでちゃんと表示されるのかな

>>373

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:14:12 .net]
>>372
紙面上に、└┘└┘みたいな感じでスペースの個数は明示してあるの?
明示してないなら紙面が悪いと思うが。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 12:36:36 .net]
>>373
空白2個ならいけるのですか。

>>376
そういう、└┘└┘みたいな感じはなかったです。文字数的にも一文字分の感じ
ですし。編集上のミスかもしれませんけど。

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 14:25:37 .net]
>>376
> 「これはどう読むかというと、『...、空白のならび2と、...
って書いてあるんだろ?




379 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 14:29:14 .net]
>>378
それは、¥2 のこと。「スペース2個」のことじゃないよ。

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 14:31:27 .net]
>>378 空白のならび


381 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 14:34:38 .net]
>>378
正規表現を理解してないバカ発見。

任意の文字列 → \1
空白の並び → \2
別の任意の文字列 → \3

と言ってるだけのこと。それとスペース2つ書くのとは意味が違う。

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/15(土) 14:44:12 .net]
むしろhtmlのレンダリングを理解していない

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/03/25(金) 20:16:28.23 .net]
任意の文字列の前か後ろの少なくともどちらかは、任意でない特定の文字・文字列(含^$)でないと困ったことになるということですね?
俺も前それで失敗した。

384 名前:名無しさん@お腹いっぱい。 [2011/04/21(木) 06:41:06.41 .net]
sedの話題はこっちへ
くれぐれもシェルスクリプトスレに書き込まないように!

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/21(木) 13:17:24.83 .net]
>>377
\2,\3がφで全体がマッチ
\1に行全体

一つ目が\([^ ]*\)ならよかった。

386 名前: 忍法帖【Lv=38,xxxPT】 【東電 69.2 %】 株価【E】 mailto:sage [2011/04/27(水) 08:53:07.51 .net]
AAA BBB=111 CCC=111

この行の111を000に置き換えするのに
sed -e 's/BBB=111/BBB=000/'
とする以外にもっとスマートな書式を教えてください。

GNU sedです

387 名前:名無しさん@お腹いっぱい。 [2011/04/27(水) 12:11:27.62 .net]
>>386
sed -e "s/1/0/g"

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/27(水) 12:35:36.38 .net]
>>386
> sed -e 's/BBB=111/BBB=000/'
これじゃ、お題
> この行の111を000に置き換えするのに
を満たさない。

矛盾を含む質問に答えることは不可能。



389 名前:386 mailto:sage [2011/04/27(水) 13:29:23.92 .net]
>この行の111を000に置き換えするのに
この行のBBB=111だけをBBB=000にする書式でした
すいません。

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/27(水) 13:52:24.65 .net]
スマートの基準がわからないけど、BBBが二度出現するのが嫌なら

sed -e 's/\(BBB\)=111/\1=000/'

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/27(水) 14:59:23.65 .net]
>>386
s/111 /000 / で十分


392 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/27(水) 16:29:55.08 .net]
AAA BBB=111 CCC=111 DDD=111 EEE=1111

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/27(水) 19:10:11.78 .net]
sed -e /BBB=/{'s/111/000/'}

シェルスクリプトスレで覚えたやり方

394 名前:名無しさん@お腹いっぱい。 [2011/05/18(水) 23:11:59.71 .net]
sed -e 's/<space><space>*/<space>/g' test.txt
って動かないんですが?

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 09:49:48.72 .net]
動きますよ?

396 名前:名無しさん@お腹いっぱい。 [2011/05/19(木) 10:16:19.05 .net]
EUCだとうまく動作しないのだが、これはデフォルトなのかな

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 10:19:25.96 .net]
EUCでも問題ないけど。

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 17:40:32.75 .net]
そもそも、EUCはそういうツールで不都合がないようにということで作られたわけで。
日本語独特の文節や漢字などに対応しない、というのはあるけど。



399 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 18:16:12.59 .net]
>>396
> うまく動作しない

How?


400 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 18:31:23.35 .net]
<space> ってそのまま打ってるってオチだろw

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 19:04:04.07 .net]
>400
そのとおりでした;すいません

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/05/19(木) 19:05:53.32 .net]
EUCじゃないファイルではうまくいってたのか?

403 名前:401 mailto:sage [2011/05/19(木) 20:27:32.13 .net]
>402 それは別人です

404 名前:401 mailto:sage [2011/05/30(月) 17:29:13.86 .net]
偽物ばかり
氏ね

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/09(金) 13:29:22.13 .net]
急に Windows 7 64 bit で ssed が使えなくなっま。

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/12(月) 17:43:29.52 .net]
で?

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/09/26(月) 15:16:39.67 .net]
xp モードで解決したわけですね

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 13:06:39.22 .net]
tab8のテキストをインデントを崩さずに半角スペースに置き換えるにはどうすればいいですか?



409 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 14:42:23.70 .net]
expand -8

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 14:49:05.34 .net]
sedで、じゃね。

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 14:57:37.44 .net]
エスパーすると質問者は手段はsedじゃなくても良いと考えてる

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 14:58:33.13 .net]
それならこのスレで聞かないでしょ。

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:01:50.53 .net]
sedでもできそうだと勘違いしたからでしょ

414 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:08:26.12 .net]
>>410
それなら「expand -8相当の処理をsedでやるには?」って聞くでしょ。

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:34:39.95 .net]
>>414
expand を知らなかった、という可能性は。

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:38:55.31 .net]
>>415
というかexpandを知らなかったからこそ
「tab8のテキストをインデントを崩さずに…」みたいな
まわりくどい言い方で聞いたんでしょ。
だからsedに関係なくexpandを回答すれば回答として十分。

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:49:38.28 .net]
>>408
そろそろ正解を。

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/30(水) 15:50:50.14 .net]
>>416
expandを知らないけどsedを使わなければならない理由があるんだよ!



419 名前:408 mailto:sage [2011/11/30(水) 17:44:22.28 .net]
すっごく登場しにくくなったけど>>415さんが正解です。

>>409
エスパーさんありがとう。

皆さん混乱させてスイマセンでした。置き換えと言えばsedしか知らなかったので。

420 名前:名無しさん@お腹いっぱい。 [2012/04/06(金) 20:12:58.82 .net]
文字列unkoの行を見つけてから文字列chinkoの行まで表示
ってどうやればいいの?

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/06(金) 20:38:54.03 .net]
>>420
当たり前過ぎるから回答は控えるけど、
エスパーすると -n オプション忘れて全部の行が表示されてしまったってオチだろな

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/06(金) 23:35:46.08 .net]
そんなことなくてその当たり前すぎる内容がわからない初心者さんなんでしょう。
回答してあげないなんてひどいね

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/07(土) 07:37:37.99 .net]
>>421
あ、-n だけのことだったんですね。失礼しました。

>>422
そこまで初心者じゃないです。

424 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/07(土) 08:46:29.91 .net]
自己申告乙

425 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/08(日) 06:16:06.93 .net]
初心者の土瓶口だけど、chinkoの前の行まで表示 ってのはできるの?

426 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/08(日) 06:20:31.95 .net]
>>425
/start/,/end/{/end/!p}

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/08(日) 08:34:53.99 .net]
>>426
いや、それは知ってるよ。
そういうことせずに直接○○の行の手前まで指定はできないのか聞いてるんだが

428 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/08(日) 16:24:07.33 .net]
unkoの次の行から、ってのは難しいのかな・・・



429 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/08(日) 16:42:05.75 .net]
>>428
startを含まず、endを含む場合
sed -n '1,/start/b; 1,/end/p'

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/09(月) 11:14:30.69 .net]
みんな1行野郎なの? スクリプトファイルは書かないの?

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/10(火) 11:14:22.67 .net]
>>430
スクリプト書くほどならperlで書いちゃう

432 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/11(水) 03:53:49.91 .net]
perlは英語のマニュアルが読めなくて挫折した。あんときperlがんばっとけばよかったorz

433 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/11(水) 08:09:32.29 .net]
書くよ

434 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 05:52:55.50 .net]
DTPでテキストの整形するとき、いっぱい痴漢(←なぜか第一候補)するよ。

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 18:41:21.71 .net]
>>432
俺はPerlは書籍で覚えたな、ラクダとあと何かUnixツールとして使うための本

436 名前:名無しさん@お腹いっぱい。 [2012/08/06(月) 23:45:58.92 .net]
教えてください!
テキストファイルの最後にある空行を削除するにはどうすればいいですか?
$ sed -n ' 105,$p' Ga.inp
search.LowerE -3.000 # default=-3.000 (Hartree)
search.UpperE 20.000 # default=20.000 (Hartree)
num.of.partition 1200 # default=300
matching.point.ratio 0.67 # default=0.67











の様に、最後に無駄な空行のあるファイルがたくさんあって、一括削除したいのです。
ただし、途中にある改行は、ファイルの見やすさのために残しておきたいのです。
ed で言えば
$;?^.?;+,$d
で出来ると思うのですが、sed では';'や'+'が使えず、どうしてよいやら・・・


437 名前:名無しさん@お腹いっぱい。 [2012/08/07(火) 00:42:37.55 .net]
パターンスペースが
空行だったらホールドスペースに追加
空行でなかったらホールドスペースを出力後にパターンスペース出力

最後の連続空行はホールドスペースに収まったままで終わる。

とか考えてみたがあってるだろうか。


438 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/07(火) 03:04:20.52 .net]
Nコマンドを使っていて必要な最期の行を全部すっとばしたことが、私にもありました



439 名前:名無しさん@お腹いっぱい。 [2012/08/07(火) 22:00:53.40 .net]
>>437
多分やりたいのはそれだと思います。
具体的に同書けばいいのでしょう?


440 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 02:01:32.99 .net]
もうawkかなにかで済ましてるだろうけど練習
437とは違うやり方になった
sed -n -e '
:loop
/^\n*$/{
N
b loop
}
p
'

441 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 21:26:58.20 .net]
>>440
ありがとうございます!
うまくいきました。


442 名前:名無しさん@お腹いっぱい。 [2012/08/17(金) 16:05:21.04 .net]
gsedですが、
ブラケット開きがあって、ブラケット閉じ以外のものが1つ以上あって、ブラケット閉じがある場合、
で、これどこがおかしいのでしょうか? ★☆が現れてくれないんですけど。
s/\[\([^\]][^\]]*\)]/[★\1☆]/g

443 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/17(金) 16:29:03.18 .net]
>>442
バックスラッシュが余計

sed 's/\[\([^]][^]]*\)]/[★\1☆]/g'

444 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/17(金) 16:43:13.83 .net]
ありがとうございます。
つまり、[ と ] の間にあるものはどんなものでも
「これは文字です」と宣言しなくてもいい(\が要らない)ということですか。
やってみます。ありがとうございました。

445 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/17(金) 16:45:03.71 .net]
>>444
そうなんだけど、] の場合は、[^ の直後にある場合のみ
普通の文字の ] とみなすという仕様。( [ の直後でも同様)

446 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/17(金) 18:35:40.56 .net]
テキスト   [aaa], [bbb] <あああ>の(アアア)と<いいい>の(イイイ)
欲しい結果 ★aaa☆, ★bbb☆ ★あああ☆の★アアア☆と★いいい☆の★イイイ☆
s/[<[(]\([^<>[]()][^<>[]()]*\)[>])]/★\1☆/g
予想はしたけど、まるで反応してくれません。
半角の約物3種類は欲張ったかなあ、と1つずつやってみているところです。

447 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/17(金) 18:37:54.56 .net]
>>446
>>445 に書いてあること読めよ。

[^ の直後に ] を置かないと、普通の文字としては認識されないんだよ。
[^....] の中の .... の順番を変えろということ。

448 名前:名無しさん@お腹いっぱい。 [2012/08/17(金) 18:41:47.66 .net]
>>446
s/[[<(]\([^]<>()][^]<>()]*\)[]>)]/★\1☆/g



449 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/18(土) 03:20:55.76 .net]
>>447-448
ああ、すみません。言葉が足りませんでした。読んだ上でわざと変えてみたのです。

450 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/19(日) 00:04:02.62 .net]
え?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<140KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef