sed
1名無しさん@お腹いっぱい。
NGNG sedスレッド
2009/09/25(金) 12:37:49
2010/02/20(土) 21:42:41
ひとつ、お聞きいたします。
Nコマンドって、最後の行で次行が読めない場合、何もせず終了、
のはずですよね。すると、
sed 'sed ':l;N;bl' <file>
とすると何も出力されないんじゃないかと思うんですが、
私の使っているGNU sed 4.1.5版だと<file>の全部を出力してしまいます。
つまり、「何もせず終了」じゃなくて、「デフォルト出力して終了」
になっているように思われるわけですが、これは、どうなんでしょうか。
Nコマンドって、最後の行で次行が読めない場合、何もせず終了、
のはずですよね。すると、
sed 'sed ':l;N;bl' <file>
とすると何も出力されないんじゃないかと思うんですが、
私の使っているGNU sed 4.1.5版だと<file>の全部を出力してしまいます。
つまり、「何もせず終了」じゃなくて、「デフォルト出力して終了」
になっているように思われるわけですが、これは、どうなんでしょうか。
2010/02/20(土) 23:16:51
>>347
infoに書いてありました。
infoに書いてありました。
349名無しさん@お腹いっぱい。
2010/07/01(木) 23:39:24 なるほど
2010/08/17(火) 13:08:10
yコマンドで"/"を対象に入れたいんですが出来ないんでしょうか
初歩的ですいません
初歩的ですいません
2010/08/17(火) 13:23:28
352350
2010/08/17(火) 23:26:44 そうか、区切り文字変えられるのsコマンドばかりじゃないんですね。
どうもありがとうございました。
どうもありがとうございました。
353初心者
2010/10/23(土) 20:01:51 sedでシェルすくりぷとの行つなぎバックスラッシューを消して、繋ぐことできますか?
perlなら-pe "s/\\\n//g"でできます。
edでも、awkでもできれば、教えていただけませんか?
perlなら-pe "s/\\\n//g"でできます。
edでも、awkでもできれば、教えていただけませんか?
354名無しさん@お腹いっぱい。
2010/10/24(日) 13:40:00 できる
355初心者
2010/10/24(日) 21:13:33 できました ありがとう
356初心者
2010/10/25(月) 22:07:05 できないようですね、残念です。
2010/10/26(火) 19:38:19
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'
置換パターンに\nを許さない場合は
sed -e ':lbl' -e '/[^\\]$/b' -e 's/\\$//' -e N -e 's/
//' -e 'b lbl'
2010/10/28(木) 08:37:34
踊っているように見えて仕方がない
echo "000000$NUM" | sed -e 's/.*\(..\)\(..\)\(..\)/\1\2\3/'
echo "000000$NUM" | sed -e 's/.*\(..\)\(..\)\(..\)/\1\2\3/'
2010/11/28(日) 18:33:17
sedでファイルのある部分までをファイル1、それ以降をファイル2に出力ってスマートにできませんか?
例えば100行のsample.txtというファイルで、
sed -e "50q" < sample.txt > sample1.txt
sed -e "1,50d" < sample.txt > sample2.txt
の様にするのは無駄におもえてしまいます。
例えば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 sed -ne '1,50w sample1.txt' -e '51,$w sample2.txt' < sample.txt
とか?
とか?
2010/11/28(日) 18:48:58
split -50 sample.txt; mv xaa sample1.txt; mv xab sample2.txt
2010/11/28(日) 19:52:27
>>360,361
ありがとうございました。勉強になります。
ありがとうございました。勉強になります。
363名無しさん@お腹いっぱい。
2010/12/22(水) 23:54:50 入力テキストを
1行目の内容 2行目の内容
2行目の内容 3行目の内容
:
最終-2行目の内容 最終-1行の内容
最終-1行目の内容 最終行の内容
という形(隣り合った行の値を空白で連結する)に変換するにはどう書けば
よいでしょうか。
sed -ne '1!p;$!p'
と通せば先頭末尾以外の行を2回出力できたので、
これを2行分ずつくっつければ出来そうなのですが…
1行目の内容 2行目の内容
2行目の内容 3行目の内容
:
最終-2行目の内容 最終-1行の内容
最終-1行目の内容 最終行の内容
という形(隣り合った行の値を空白で連結する)に変換するにはどう書けば
よいでしょうか。
sed -ne '1!p;$!p'
と通せば先頭末尾以外の行を2回出力できたので、
これを2行分ずつくっつければ出来そうなのですが…
364名無しさん@お腹いっぱい。
2010/12/23(木) 00:03:02 ¥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
$ 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
2010/12/23(木) 00:47:03
seq 1 10 | sed -ne '1h;1!{H;x;s/\n/ /;p}'
2010/12/26(日) 21:44:54
s/seq/jot/
367名無しさん@お腹いっぱい。
2011/01/15(土) 11:45:22 unixの基礎概念という本の中に
a 21
is 10
this 3
というtest.txtファイルに対して、
sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
とすると結果は
21 a
10 is
3 this
になると書いてありましたが、実行してみると並びはかわりませんでした。
a 21
is 10
this 3
というtest.txtファイルに対して、
sed 's/\(.*\)\( *\)\(.*\)/\3\2\1/' test.txt
とすると結果は
21 a
10 is
3 this
になると書いてありましたが、実行してみると並びはかわりませんでした。
2011/01/15(土) 11:49:07
2011/01/15(土) 11:50:52
久野さんらしくないミスだな。
確かに変わらないね。
確かに変わらないね。
2011/01/15(土) 11:51:32
2011/01/15(土) 11:54:36
これかな? http://www.amazon.co.jp/dp/4756144772
久野先生の本だけど、そんなのが混ざってるのか。
久野先生の本だけど、そんなのが混ざってるのか。
2011/01/15(土) 12:01:42
>>371
はいそれです。解説にも
「これはどう読むかというと、『入力行を任意の文字列1と、空白のならび2と、また別の任意の文字列3
にマッチさせ、それ全体を3、2、1の順でつなげたものに置き換える』という意味になる。」と書いてあります。
はいそれです。解説にも
「これはどう読むかというと、『入力行を任意の文字列1と、空白のならび2と、また別の任意の文字列3
にマッチさせ、それ全体を3、2、1の順でつなげたものに置き換える』という意味になる。」と書いてあります。
2011/01/15(土) 12:06:04
2011/01/15(土) 12:10:21
2chに不慣れな感じ
2011/01/15(土) 12:11:56
2011/01/15(土) 12:14:12
2011/01/15(土) 12:36:36
2011/01/15(土) 14:25:37
2011/01/15(土) 14:29:14
>>378
それは、¥2 のこと。「スペース2個」のことじゃないよ。
それは、¥2 のこと。「スペース2個」のことじゃないよ。
2011/01/15(土) 14:31:27
>>378 空白のならび
2011/01/15(土) 14:34:38
2011/01/15(土) 14:44:12
むしろhtmlのレンダリングを理解していない
2011/03/25(金) 20:16:28.23
任意の文字列の前か後ろの少なくともどちらかは、任意でない特定の文字・文字列(含^$)でないと困ったことになるということですね?
俺も前それで失敗した。
俺も前それで失敗した。
384名無しさん@お腹いっぱい。
2011/04/21(木) 06:41:06.41 sedの話題はこっちへ
くれぐれもシェルスクリプトスレに書き込まないように!
くれぐれもシェルスクリプトスレに書き込まないように!
2011/04/21(木) 13:17:24.83
AAA BBB=111 CCC=111
この行の111を000に置き換えするのに
sed -e 's/BBB=111/BBB=000/'
とする以外にもっとスマートな書式を教えてください。
GNU sedです
この行の111を000に置き換えするのに
sed -e 's/BBB=111/BBB=000/'
とする以外にもっとスマートな書式を教えてください。
GNU sedです
387名無しさん@お腹いっぱい。
2011/04/27(水) 12:11:27.62 >>386
sed -e "s/1/0/g"
sed -e "s/1/0/g"
2011/04/27(水) 12:35:36.38
389386
2011/04/27(水) 13:29:23.92 >この行の111を000に置き換えするのに
この行のBBB=111だけをBBB=000にする書式でした
すいません。
この行のBBB=111だけをBBB=000にする書式でした
すいません。
2011/04/27(水) 13:52:24.65
スマートの基準がわからないけど、BBBが二度出現するのが嫌なら
sed -e 's/\(BBB\)=111/\1=000/'
sed -e 's/\(BBB\)=111/\1=000/'
2011/04/27(水) 14:59:23.65
2011/04/27(水) 16:29:55.08
AAA BBB=111 CCC=111 DDD=111 EEE=1111
2011/04/27(水) 19:10:11.78
sed -e /BBB=/{'s/111/000/'}
シェルスクリプトスレで覚えたやり方
シェルスクリプトスレで覚えたやり方
394名無しさん@お腹いっぱい。
2011/05/18(水) 23:11:59.71 sed -e 's/<space><space>*/<space>/g' test.txt
って動かないんですが?
って動かないんですが?
2011/05/19(木) 09:49:48.72
動きますよ?
396名無しさん@お腹いっぱい。
2011/05/19(木) 10:16:19.05 EUCだとうまく動作しないのだが、これはデフォルトなのかな
2011/05/19(木) 10:19:25.96
EUCでも問題ないけど。
2011/05/19(木) 17:40:32.75
そもそも、EUCはそういうツールで不都合がないようにということで作られたわけで。
日本語独特の文節や漢字などに対応しない、というのはあるけど。
日本語独特の文節や漢字などに対応しない、というのはあるけど。
2011/05/19(木) 18:16:12.59
2011/05/19(木) 18:31:23.35
<space> ってそのまま打ってるってオチだろw
2011/05/19(木) 19:04:04.07
>400
そのとおりでした;すいません
そのとおりでした;すいません
2011/05/19(木) 19:05:53.32
EUCじゃないファイルではうまくいってたのか?
403401
2011/05/19(木) 20:27:32.13 >402 それは別人です
404401
2011/05/30(月) 17:29:13.86 偽物ばかり
氏ね
氏ね
2011/09/09(金) 13:29:22.13
急に Windows 7 64 bit で ssed が使えなくなっま。
2011/09/12(月) 17:43:29.52
で?
2011/09/26(月) 15:16:39.67
xp モードで解決したわけですね
2011/11/30(水) 13:06:39.22
tab8のテキストをインデントを崩さずに半角スペースに置き換えるにはどうすればいいですか?
2011/11/30(水) 14:42:23.70
expand -8
2011/11/30(水) 14:49:05.34
sedで、じゃね。
2011/11/30(水) 14:57:37.44
エスパーすると質問者は手段はsedじゃなくても良いと考えてる
2011/11/30(水) 14:58:33.13
それならこのスレで聞かないでしょ。
2011/11/30(水) 15:01:50.53
sedでもできそうだと勘違いしたからでしょ
2011/11/30(水) 15:08:26.12
>>410
それなら「expand -8相当の処理をsedでやるには?」って聞くでしょ。
それなら「expand -8相当の処理をsedでやるには?」って聞くでしょ。
2011/11/30(水) 15:34:39.95
>>414
expand を知らなかった、という可能性は。
expand を知らなかった、という可能性は。
2011/11/30(水) 15:38:55.31
>>415
というかexpandを知らなかったからこそ
「tab8のテキストをインデントを崩さずに…」みたいな
まわりくどい言い方で聞いたんでしょ。
だからsedに関係なくexpandを回答すれば回答として十分。
というかexpandを知らなかったからこそ
「tab8のテキストをインデントを崩さずに…」みたいな
まわりくどい言い方で聞いたんでしょ。
だからsedに関係なくexpandを回答すれば回答として十分。
2011/11/30(水) 15:49:38.28
>>408
そろそろ正解を。
そろそろ正解を。
2011/11/30(水) 15:50:50.14
>>416
expandを知らないけどsedを使わなければならない理由があるんだよ!
expandを知らないけどsedを使わなければならない理由があるんだよ!
419408
2011/11/30(水) 17:44:22.28420名無しさん@お腹いっぱい。
2012/04/06(金) 20:12:58.82 文字列unkoの行を見つけてから文字列chinkoの行まで表示
ってどうやればいいの?
ってどうやればいいの?
2012/04/06(金) 20:38:54.03
2012/04/06(金) 23:35:46.08
そんなことなくてその当たり前すぎる内容がわからない初心者さんなんでしょう。
回答してあげないなんてひどいね
回答してあげないなんてひどいね
2012/04/07(土) 07:37:37.99
2012/04/07(土) 08:46:29.91
自己申告乙
2012/04/08(日) 06:16:06.93
初心者の土瓶口だけど、chinkoの前の行まで表示 ってのはできるの?
2012/04/08(日) 06:20:31.95
>>425
/start/,/end/{/end/!p}
/start/,/end/{/end/!p}
2012/04/08(日) 08:34:53.99
2012/04/08(日) 16:24:07.33
unkoの次の行から、ってのは難しいのかな・・・
2012/04/08(日) 16:42:05.75
2012/04/09(月) 11:14:30.69
みんな1行野郎なの? スクリプトファイルは書かないの?
2012/04/10(火) 11:14:22.67
>>430
スクリプト書くほどならperlで書いちゃう
スクリプト書くほどならperlで書いちゃう
2012/04/11(水) 03:53:49.91
perlは英語のマニュアルが読めなくて挫折した。あんときperlがんばっとけばよかったorz
2012/04/11(水) 08:09:32.29
書くよ
2012/04/13(金) 05:52:55.50
DTPでテキストの整形するとき、いっぱい痴漢(←なぜか第一候補)するよ。
2012/04/13(金) 18:41:21.71
>>432
俺はPerlは書籍で覚えたな、ラクダとあと何かUnixツールとして使うための本
俺はPerlは書籍で覚えたな、ラクダとあと何かUnixツールとして使うための本
436名無しさん@お腹いっぱい。
2012/08/06(月) 23:45:58.92 教えてください!
テキストファイルの最後にある空行を削除するにはどうすればいいですか?
$ 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 では';'や'+'が使えず、どうしてよいやら・・・
テキストファイルの最後にある空行を削除するにはどうすればいいですか?
$ 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 パターンスペースが
空行だったらホールドスペースに追加
空行でなかったらホールドスペースを出力後にパターンスペース出力
最後の連続空行はホールドスペースに収まったままで終わる。
とか考えてみたがあってるだろうか。
空行だったらホールドスペースに追加
空行でなかったらホールドスペースを出力後にパターンスペース出力
最後の連続空行はホールドスペースに収まったままで終わる。
とか考えてみたがあってるだろうか。
2012/08/07(火) 03:04:20.52
Nコマンドを使っていて必要な最期の行を全部すっとばしたことが、私にもありました
439名無しさん@お腹いっぱい。
2012/08/07(火) 22:00:53.402012/08/08(水) 02:01:32.99
もうawkかなにかで済ましてるだろうけど練習
437とは違うやり方になった
sed -n -e '
:loop
/^\n*$/{
N
b loop
}
p
'
437とは違うやり方になった
sed -n -e '
:loop
/^\n*$/{
N
b loop
}
p
'
2012/08/08(水) 21:26:58.20
442名無しさん@お腹いっぱい。
2012/08/17(金) 16:05:21.04 gsedですが、
ブラケット開きがあって、ブラケット閉じ以外のものが1つ以上あって、ブラケット閉じがある場合、
で、これどこがおかしいのでしょうか? ★☆が現れてくれないんですけど。
s/\[\([^\]][^\]]*\)]/[★\1☆]/g
ブラケット開きがあって、ブラケット閉じ以外のものが1つ以上あって、ブラケット閉じがある場合、
で、これどこがおかしいのでしょうか? ★☆が現れてくれないんですけど。
s/\[\([^\]][^\]]*\)]/[★\1☆]/g
2012/08/17(金) 16:29:03.18
2012/08/17(金) 16:43:13.83
ありがとうございます。
つまり、[ と ] の間にあるものはどんなものでも
「これは文字です」と宣言しなくてもいい(\が要らない)ということですか。
やってみます。ありがとうございました。
つまり、[ と ] の間にあるものはどんなものでも
「これは文字です」と宣言しなくてもいい(\が要らない)ということですか。
やってみます。ありがとうございました。
2012/08/17(金) 16:45:03.71
2012/08/17(金) 18:35:40.56
テキスト [aaa], [bbb] <あああ>の(アアア)と<いいい>の(イイイ)
欲しい結果 ★aaa☆, ★bbb☆ ★あああ☆の★アアア☆と★いいい☆の★イイイ☆
s/[<[(]\([^<>[]()][^<>[]()]*\)[>])]/★\1☆/g
予想はしたけど、まるで反応してくれません。
半角の約物3種類は欲張ったかなあ、と1つずつやってみているところです。
欲しい結果 ★aaa☆, ★bbb☆ ★あああ☆の★アアア☆と★いいい☆の★イイイ☆
s/[<[(]\([^<>[]()][^<>[]()]*\)[>])]/★\1☆/g
予想はしたけど、まるで反応してくれません。
半角の約物3種類は欲張ったかなあ、と1つずつやってみているところです。
レスを投稿する
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 「すごいアイドル出てきた」「かわいすぎる」ラヴィット初登場の美女に視聴者驚き ≠ME櫻井もも [ヴァイヴァー★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【高市速報】小野田キミ「中国依存はリスク」断交を示唆か [931948549]
- 【んな専🏡】なんG 姫森ルーナ(・o・🍬)総合スレ🏰【ホロライブ▶】
- 【悲報】高市早苗周辺「支持層が離れるので今更発言を撤回できない」 [935793931]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
