[過去ログ] おまいら! sed の使い方教えて下さいm(_ _)m (181レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): sed@修業中 03/11/03 08:26 ID:62bfq5Tp(1/9) AAS
Linux使ってるならsedあたりはサックって使えるようになりたい。
だけどなかなかまとまった日本語の解説がすくなくて苦労する。
ここで皆の智恵をだしつくして欲しい!

日本語解説サイト
http://www-6.ibm.com/jp/developerworks/linux/010202/j_l-sed1.html
http://www-6.ibm.com/jp/developerworks/linux/010216/j_l-sed2.html
http://www-6.ibm.com/jp/developerworks/linux/010223/j_l-sed3.html

英語だとここからたどれる
http://sed.sourceforge.net/index.html
162: 2011/09/22(木)23:43 ID:KTYpcKqF(2/3) AAS
>>161
それで出たわ。「"sed -e '$-3,$d' file"」でググると出るわ出るわ…
POSIXの規格読むと分かるけど、sedのアドレスにそんな指定方法はないし、
そもそも仕組み上そんな指定ができる訳がない。(そういう実装だとsedの良さがなくなる)

でも、ちょっとコマンド叩けば直ぐ試せるのに、ここまで間違った記述が蔓延したのは疑問。
気になって調べたら、どうも「入門UNIXシェルプログラミング 改訂第2版」が犯人。
正誤表に訂正あり。(参考:http://www.sbcr.jp/support/8429.html

さらに、発売日以前に絞ってググったら、どっかの大学生がコピペしたページのみヒット。
コピー元は2003年まではあったようだから、つまり
間違った記述の1ページ → それを検証せず本に記載 → それをさらに検証せずにネットにコピペ
省4
163: 2011/09/22(木)23:57 ID:KTYpcKqF(3/3) AAS
上の例に加えてもう一つ。一番分かりやすく書くとこうかな。

sed ': loop
1,4 { N
   b loop
}
$! { P
   N
   D }
s/hoge/piyo/g' file

こう書くと改行が入ってワンライナーにはつらいがしかたない。
省4
164
(1): 2011/09/23(金)14:24 ID:vKgog6QO(1/2) AAS
>>159
最後の5行だけ置換対象とする
#!/bin/sh
sed "$(($(sed -n '$=' file)-5+1)),$ s/hoge/piyo/" file

sedしか使ってないよ〜
/bin/shのArithmetic Expansionは使ってるけど
165: 164 2011/09/23(金)14:50 ID:vKgog6QO(2/2) AAS
あ、fileは5行以上って前提
そこは工夫しないと
166
(1): 2012/06/07(木)10:18 ID:srWmu+na(1) AAS
1行目の後にtestを入れるつもりがエラーになります。
>cat text.txt| sed -e '1atest'
sed: 1: "1atest
": command a expects \ followed by text

シェルの中で、置換と追加をやりたので、実際はこうなってます。
sed -e 's/Before/After/g' \
-e '1iコメント' \
  -e '12iコメント' \
 元ファイル > 新ファイル

行追加だけエラーになるのですが、
省1
167: 2012/06/07(木)20:33 ID:1zdUDRFK(1) AAS
>>166
質問の仕方から勉強すべき
どういう状態で何をするとどうなるのか
誰でも再現できるような説明を書くべき
168
(2): 2012/06/30(土)11:03 ID:JdPlGyq5(1) AAS
sed使うくらいならperl使った方が楽。
169: 2012/06/30(土)11:18 ID:kfAX5M5C(1) AAS
>>168
遅れてる〜
170
(1): 2012/07/02(月)23:12 ID:hH2EDXHS(1) AAS
>>168
perl使いってマジで気持ち悪い
どんな場面でも無理やりperlを使おうとする
シンプルなコマンドの組み合わせで機能を実現できたり、
よりモダンな言語やスクリプトで簡単に実現できるのに
強引なまでにperlにこだわる
(emacs使いもその傾向有り)
殆ど病気だわ
171: 2012/07/31(火)04:16 ID:79ga/vr4(1) AAS
常識で考えて、sedのバッファやりくりでパズルするくらいならperlのほうが楽だろ。
172: 2012/07/31(火)14:10 ID:SnlNjA/Q(1) AAS
>170
徒歩5分の距離にある目的地と徒歩1時間のそれ、そこに行くために歩いても自転車をこいでも自動車に乗ってもその人の自由でしょ。
常に特定の手段しか使わない人に関わりたくなければその人から遠ざかっていればいいじゃない。
173
(2): 2012/08/30(木)20:41 ID:kbI/S7Ao(1/2) AAS
スレ違いで申し訳ないんっですが、join コマンドの使い方について教えてください。

下記のような「時間,数値」を持ったcsvファイルがあり、時間をキーにして結合したいと思っています。
コマンドを調べたところ「join」(もしくはpaste)コマンドがぴったりだったので

join aaa.csv bbb.csv

とコマンドを実行したのですが、期待結果が返ってきません。
ファイルの内容と期待結果は以下です。

aaa.csv
-----------------------
23:00:00,4.12
23:05:00,17.07
省15
174: 2012/08/30(木)21:13 ID:kFZpMX1L(1) AAS
スレ違いだとわかってるなら適切なスレで聞いてください。
175
(1): 2012/08/30(木)21:40 ID:R2lX72jf(1) AAS
catじゃだめなのか…
176
(1): 2012/08/30(木)21:48 ID:kbI/S7Ao(2/2) AAS
>175
catコマンドで横に結合できるのでしょうか?><
177: 2012/08/30(木)23:35 ID:2CJ6F/qn(1) AAS
>>176
スレ違いっ><
失せろっm(__)m
178: 2012/08/31(金)08:24 ID:5kRScUpP(1) AAS
>>173
sed スレなんだから、sed を1つでも使ってやれよ!w
179: 2013/11/04(月)18:07 ID:p0Jz6Hdm(1) AAS
ちーばくん

ヘ__/ ̄ ̄ ̄\
\ノ  (・)   ヽ__)
 \_ノ    丿
  (ノー、  |
    ノ  ヽ
   /  | |
   |  (_ノ
   \  /
    ) /
省1
180
(1): 2015/02/06(金)13:20 ID:/TKErNtd(1) AAS
>>173
もう見てはいないだろうが、 -t でちゃんとセパレータを設定する必要がある。
181: 2017/07/01(土)01:46 ID:Gj6Eudou(1) AAS
>>180
ありがとうございます!
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.298s*