すごくなくてもできる。とりあえず、シェルスクリプトすれに池。
もっと短くできるが、何をやっているかわかりやすく説明するのをかねて↓
find -type f | while read file ; do
mv ${file} ${file}.backup
cat ${file}.backup | sed -e "s/aaa/zzz/g" > ${file}
done
sed
NGNG
NGNG
次世代sed登場
ttp://news.tbs.co.jp/newseye/tbs_newseye1037945.html
ttp://news.tbs.co.jp/newseye/tbs_newseye1037945.html
NGNG
NGNG
bash上でなのですが、
hoge=`echo ../tmp/work.c | sed 's/\//\\\//g'`
を実行しようとすると、
sed: -e expression #1, char 9: Unknown option to 's'
となってしまうのは、なぜですか?
/を\/に置換したいだけなのです。
hoge=`echo ../tmp/work.c | sed 's/\//\\\//g'`
を実行しようとすると、
sed: -e expression #1, char 9: Unknown option to 's'
となってしまうのは、なぜですか?
/を\/に置換したいだけなのです。
NGNG
NGNG
うーん、確かにシェル向けのネタなのかもですが、
echo ../tmp/work.c | sed 's/\//\\\//g'
だけだと動くのがよくわからなくって。
echo ../tmp/work.c | sed 's/\//\\\//g'
だけだと動くのがよくわからなくって。
NGNG
いいことを教えてあげよう。
's@hoge@hage@g'とやってごらん。
's@hoge@hage@g'とやってごらん。
NGNG
command not found
でした・・・って、そういう意味ではないのかな・・・。
でした・・・って、そういう意味ではないのかな・・・。
NGNG
s/..../..../g は s@....@....@g とも書ける
という意味
という意味
28名無しさん
NGNG Filesystem Size Used Avail Use% Mounted on
/dev/hda5 9.6G 844M 8.3G 10% /
というのを
~$ df /home/ | sed -n -e "2s/.*\(\d*\)%.*/<\1>/p"
として10を取り出したいのですがうまくいきません
結果は
<>
となります
どうすればいいのでしょうか?
/dev/hda5 9.6G 844M 8.3G 10% /
というのを
~$ df /home/ | sed -n -e "2s/.*\(\d*\)%.*/<\1>/p"
として10を取り出したいのですがうまくいきません
結果は
<>
となります
どうすればいいのでしょうか?
29名無しさん@お腹いっぱい。
NGNG space, tab を区切りにして何番目の要素って選択したほうがいいんじゃないの。
NGNG
先頭の.* が % の直前までマッチし、
\d* が長さ0、
% が % にマッチ、
最後の .* が残りの部分にマッチしてるからね。
\d* が長さ0、
% が % にマッチ、
最後の .* が残りの部分にマッチしてるからね。
NGNG
そもそも \d なんて使える sed あんの?
NGNG
sedsedesedesedesed
33名無しさん@お腹いっぱい。
NGNG sed(sede){3}sed
34名無しさん@お腹いっぱい。
NGNG hosyu
NGNG
しーずか〜な〜しーずかな〜
さーとのーあ〜きぃ〜
おーsed〜にきぃ〜のみが〜
お〜ちる〜よ〜は〜
さーとのーあ〜きぃ〜
おーsed〜にきぃ〜のみが〜
お〜ちる〜よ〜は〜
36名無しさん@お腹いっぱい。
NGNGNGNG
sedは日暮れて〜夕波小波〜
38BBQ
05/01/27 15:19:10 temp.txt中の"-"と"+"以外の文字を空白に変換するには
sed 's/[^\-\+]/ /g' temp.txt
でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\-\+0-9]/ /g' temp.txt
では文法エラーになってしまいます。
sed 's/[^\-\+]/ /g' temp.txt
でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\-\+0-9]/ /g' temp.txt
では文法エラーになってしまいます。
39BBQ
05/01/27 15:31:07 >>38
+と−の順番が逆でした。
以下に訂正。
temp.txt中の"-"と"+"以外の文字を空白に変換するには
sed 's/[^\+\-]/ /g' temp.txt
でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\+\-0-9]/ /g' temp.txt
では文法エラーになってしまいます。
+と−の順番が逆でした。
以下に訂正。
temp.txt中の"-"と"+"以外の文字を空白に変換するには
sed 's/[^\+\-]/ /g' temp.txt
でうまくいきますが、temp.txt中の"-"と"+"と数字以外の文字を空白に変換するには
どう記述すればよいのでしょうか
sed 's/[^\+\-0-9]/ /g' temp.txt
では文法エラーになってしまいます。
05/01/27 15:31:45
うちの OS だと、ならんけど?
まあ
sed 's/[^-+0-9]/ /g' temp.txt
って書いた方が簡潔だとは思うが。
まあ
sed 's/[^-+0-9]/ /g' temp.txt
って書いた方が簡潔だとは思うが。
41BBQ
05/01/27 15:55:36>>40
> うちの OS だと、ならんけど?
> まあ
> sed 's/[^-+0-9]/ /g' temp.txt
> って書いた方が簡潔だとは思うが。
Cygwin についてくるsed です。
sed 's/[^-+0-9]/ /g' temp.txt
これは問題なく正常動作しました。
42名無しさん@お腹いっぱい。
05/01/27 21:55:2405/01/27 22:13:09
>>42
> sed 's/[^+-0-9]/ /g' temp.txt にするとだめです。
仕様です.
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=re_format&dir=jpman-5.2.0%2Fman§=0
> sed 's/[^+-0-9]/ /g' temp.txt にするとだめです。
仕様です.
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=re_format&dir=jpman-5.2.0%2Fman§=0
05/01/27 22:15:19
05/01/28 13:57:06
なんでperl使わないの?
05/01/28 17:44:42
>>45
どうやって、perl おぼえた?
どうやって、perl おぼえた?
05/01/28 18:02:57
なんでperl使うの?
05/01/28 18:10:23
らくだ本に一万円投資しちゃったからとか。
05/01/28 18:15:54
どうやって perl インストールしたの?
05/01/30 00:56:27
インストールできなかったの?
51名無しさん@お腹いっぱい。
2005/03/24(木) 05:43:55 FreeBSD の sed って c コマンドの後のコマンドも実行するね。
これってバグじゃね?
これってバグじゃね?
2005/03/24(木) 09:44:49
2005/03/26(土) 16:20:20
perlは、難しいので
sed & awkでやって逝く事にしました。
sed & awkでやって逝く事にしました。
2005/03/26(土) 17:23:11
適材適所ってこともあるんだよもん。
2005/03/29(火) 16:37:56
若者は、PERLを消化して部位部位いわせsed&AWK何それ?状態
案外、sed&AWKを学ぶ必要がなかったりする?
新しいのについて行けずに、たちどまってしまったオッサンは、sed&AWK
せめてPERLぐらいやる。だだでえくいっぱぐれてるのに
両方の言語を使用したことのあるエキスパートに意見を伺いたい
sed&AWKなら簡単にできてPERLなら難しい処理例
PERLなら簡単にできてsed&AWKなら難しい処理例
若者、おっさんに向けての指針等など
2005/03/29(火) 21:20:02
sed 's/hoge/hage/'
のほうが
perl -pe 's/hoge/hage/'
より短い。
のほうが
perl -pe 's/hoge/hage/'
より短い。
2005/03/29(火) 22:01:24
ぐれてないでまず日本語を学ぶ >だだでえくいっぱ
2005/03/30(水) 12:32:32
2005/03/30(水) 14:06:53
>>58は浪人生
2005/04/21(木) 22:37:43
sed 's/い/お/g' file
で、
file内の「いっぱい」が「おっぱい」に置換されるのは、
正 常 !
で、
file内の「いっぱい」が「おっぱい」に置換されるのは、
正 常 !
2005/04/21(木) 23:05:31
s/い/お/g ←「g」付きだと置換結果は「おっぱお」じゃないの?
2005/05/09(月) 16:07:16
質問です。bashにてGnu sed ver4.0.9を用いて
echo hoge,uge,hage,age,sage | sed 's/uge,.*\?,//g'
を実行しました。
hoge,age,sage
が出力されることを期待したのですが、実際の出力は
hoge,sage
でした。
*や+の後に?を指定すると、例えばperl,pythonなんかでは
*や+は non greedy となるので、
sedでもそうなるものと考えてたのですが、何か間違っていたのでしょうか。
また、*や+を non greedy とするにはどうすれば良いのでしょうか。
よろしくお願いします。
echo hoge,uge,hage,age,sage | sed 's/uge,.*\?,//g'
を実行しました。
hoge,age,sage
が出力されることを期待したのですが、実際の出力は
hoge,sage
でした。
*や+の後に?を指定すると、例えばperl,pythonなんかでは
*や+は non greedy となるので、
sedでもそうなるものと考えてたのですが、何か間違っていたのでしょうか。
また、*や+を non greedy とするにはどうすれば良いのでしょうか。
よろしくお願いします。
2005/05/09(月) 16:38:04
>>62
man sed しました?
man sed の SEE ALSO 見ると、
GNU sed が regex(7) (POSIX 1003.2) に (大体) 準拠してるとあると思いますが、
POSIX 1003.2 に non greedy な量指定子は無いです。
何か他の方法をとる必要があるかと。
man sed しました?
man sed の SEE ALSO 見ると、
GNU sed が regex(7) (POSIX 1003.2) に (大体) 準拠してるとあると思いますが、
POSIX 1003.2 に non greedy な量指定子は無いです。
何か他の方法をとる必要があるかと。
2005/05/09(月) 17:17:44
ありがとうございます、とりあえず>62に関しては
's/uge,[^,]*,//'
とすることにします。
's/uge,[^,]*,//'
とすることにします。
65名無しさん@お腹いっぱい。
2005/05/10(火) 18:46:02 abc xyzをaxbyczにしたいのですが
2005/05/10(火) 19:18:22
2005/05/10(火) 20:56:07
sed 's/abc xyz/axbycz/'
2005/05/18(水) 10:04:29
>>65
echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"
echo abc xyz |sed -e "s/^/%/; :ll; s/[%]\(.\)\(.*\) \(.\)\(.*\)/\1\3%\2 \4/; tll; s/%//;"
2005/05/18(水) 17:29:04
2005/05/18(水) 19:10:25
68は「大岡山のキティ」本人で複数の人間に「英語の勉強しろ」と言っていた、
という可能性は無いの。
という可能性は無いの。
2005/05/20(金) 15:37:59
2005/05/27(金) 13:57:14
GNU sedのVersion 4で、マルチバイトパッチをあてたVsersion 3みたく文字コー
ドを決めうちして変換する(ctype=EUCみたいに)方法はないのでしょうか。
jiskan16.bdfに外字を足してテキスト処理をやっているのですが、行頭に外字の
コードがくると、Version 4.1.4では誤認識してしまうのをなんとかしたいのです
が。
ドを決めうちして変換する(ctype=EUCみたいに)方法はないのでしょうか。
jiskan16.bdfに外字を足してテキスト処理をやっているのですが、行頭に外字の
コードがくると、Version 4.1.4では誤認識してしまうのをなんとかしたいのです
が。
2005/05/27(金) 18:46:29
grepもUTF-8使えるようになって欲すい。
2005/05/27(金) 19:03:08
FreeBSDでutf-8なロケールでgrep使えばOK。
2005/05/28(土) 20:35:52
sedで四則演算系は作れますか? 理由も教えてください。
2005/05/28(土) 22:09:07
宿題は自分で。
2005/05/29(日) 00:01:58
2005/05/29(日) 07:50:40
>>76
分からないのならレスすんな。
分からないのならレスすんな。
2005/05/29(日) 08:47:11
煽っても無駄ですよ。宿題は自分で。
2005/05/29(日) 08:48:54
75に答えているので78はレスしないでください。
2005/05/29(日) 13:38:42
>>77
情報小出しですみません。LNAGは設定してます。
ググってもsedの古いソースがみつからなかったので、とりあえずは、Vine2.6
の3.0.2 (だかなんだかの)のバイナリを入れて動かしてますんで、当面は困っ
てはいないのですが、システムのバージョン上げるときに、個別対応する項目
が増えるのは面倒だなと思って質問した次第です。
情報小出しですみません。LNAGは設定してます。
ググってもsedの古いソースがみつからなかったので、とりあえずは、Vine2.6
の3.0.2 (だかなんだかの)のバイナリを入れて動かしてますんで、当面は困っ
てはいないのですが、システムのバージョン上げるときに、個別対応する項目
が増えるのは面倒だなと思って質問した次第です。
2005/05/30(月) 01:02:38
>>81
GNU sedは4.xでマルチバイト文字対応が別の形で入ってるからね。
3.Xのローカライズパッチではそれほど厳密には検査されなかった
文字範囲が厳しくなってる可能性がある。
内部的には wide character に変換してごにょごにょしてるんだけど、
外字だとここでひっかかるのかもね。最悪自分でソースに手を入れて
wrapper関数書くしかないかも(外字をPUAにわりあてちゃうとか)。
GNU sedは4.xでマルチバイト文字対応が別の形で入ってるからね。
3.Xのローカライズパッチではそれほど厳密には検査されなかった
文字範囲が厳しくなってる可能性がある。
内部的には wide character に変換してごにょごにょしてるんだけど、
外字だとここでひっかかるのかもね。最悪自分でソースに手を入れて
wrapper関数書くしかないかも(外字をPUAにわりあてちゃうとか)。
83名無しさん@お腹いっぱい。
2005/05/31(火) 23:18:23 >>81
> ググってもsedの古いソースがみつからなかったので、
Ring server にあらかたのバージョンあったよ。
もちろん日本語対応パッチはそこにはないんだけど
(これはほかを探せばある)。
> ググってもsedの古いソースがみつからなかったので、
Ring server にあらかたのバージョンあったよ。
もちろん日本語対応パッチはそこにはないんだけど
(これはほかを探せばある)。
84名無しさん@お腹いっぱい。
2005/06/10(金) 22:45:512005/06/10(金) 22:56:05
>>84
ありがとう
ありがとう
2005/06/10(金) 23:23:16
87名無しさん@お腹いっぱい。
2005/07/15(金) 08:19:58 半角かなをsedで一括置換しようと
下のようなスクリプトを試しましたが
うまくいきません
解決策を教えてください
s/タ/\\={a}/g
s/ツ/\\={\\i}/g
s/ト/\\={u}/g
s/ニ/\\uc{r}/g
s/ヌ/\\uc{\\={r}}/g
s/ハ/\\uc{l}/g
s/゙/\\d{h}/g
s/ワ/\\d{m}/g
s/フ/\\.{n}/g
s/ホ/\\~n/g
OSはwindowsXPですが
sedはunix由来だからここで伺ってます
すみません
下のようなスクリプトを試しましたが
うまくいきません
解決策を教えてください
s/タ/\\={a}/g
s/ツ/\\={\\i}/g
s/ト/\\={u}/g
s/ニ/\\uc{r}/g
s/ヌ/\\uc{\\={r}}/g
s/ハ/\\uc{l}/g
s/゙/\\d{h}/g
s/ワ/\\d{m}/g
s/フ/\\.{n}/g
s/ホ/\\~n/g
OSはwindowsXPですが
sedはunix由来だからここで伺ってます
すみません
2005/07/15(金) 11:53:16
>>87
nkf じゃだめなん?
nkf じゃだめなん?
2005/07/15(金) 12:15:30
>>87
UNIX上のsedなら、それでちゃんと動作するよ。
UNIX上のsedなら、それでちゃんと動作するよ。
9087
2005/07/15(金) 13:03:542005/07/15(金) 13:21:49
9287
2005/07/15(金) 13:23:40 88、89さん申し訳ありません
wiodows上でのsedでも87のsed置換は可能です
私の勘違いでした
改めて質問させていただきます
設定済みmeadowを使って
リージョンを設定して
M+shift+|で87のsedスクリプトを走らせた場合
\になってほしい部分が化けてしまいます
原因や対処方法がおわかりに方がいらっしゃったら
ご教示願えませんでしょうか?
wiodows上でのsedでも87のsed置換は可能です
私の勘違いでした
改めて質問させていただきます
設定済みmeadowを使って
リージョンを設定して
M+shift+|で87のsedスクリプトを走らせた場合
\になってほしい部分が化けてしまいます
原因や対処方法がおわかりに方がいらっしゃったら
ご教示願えませんでしょうか?
2005/07/15(金) 13:28:00
set-process-coding-system
9487
2005/07/15(金) 13:52:19 >>93
ヒントありがとうございます
上述したように
リージョンにコマンドを渡す方法を使う場合
set-process-coding-systemの記述は
どこに、こんな風に記述すればよろしいのでしょうか?
頭が悪いので設定方法がわかりません
よろしければ教えてください
ヒントありがとうございます
上述したように
リージョンにコマンドを渡す方法を使う場合
set-process-coding-systemの記述は
どこに、こんな風に記述すればよろしいのでしょうか?
頭が悪いので設定方法がわかりません
よろしければ教えてください
2005/07/15(金) 14:31:39
>>94
ずっと効くから.emacs に書いとけ。
ずっと効くから.emacs に書いとけ。
96名無しさん@お腹いっぱい。
2005/07/17(日) 00:37:092005/07/17(日) 04:56:30
2005/08/02(火) 11:01:13
sed /^$/q
が「最初の空行までを出力する」ということで、メールのファイルからヘッダ部分を
抜き出すのに使えることがわかったのですが、その逆「最初の空行から後を出力
する」のはどうするのがよいでしょうか?
「sed ではなく○○を使え」とかいうことになるのかもしれませんが……
が「最初の空行までを出力する」ということで、メールのファイルからヘッダ部分を
抜き出すのに使えることがわかったのですが、その逆「最初の空行から後を出力
する」のはどうするのがよいでしょうか?
「sed ではなく○○を使え」とかいうことになるのかもしれませんが……
2005/08/02(火) 11:42:31
sed '1,/^$/d'
10098
2005/08/03(水) 00:43:23 >99
なるほど。「最初から空行までを削除する」と読むわけですか。
98の「空行が見つかったら終了する」も奥が深いと思ったのですが、まだまだ精進が
足りませんね。ありがとうございました。
なるほど。「最初から空行までを削除する」と読むわけですか。
98の「空行が見つかったら終了する」も奥が深いと思ったのですが、まだまだ精進が
足りませんね。ありがとうございました。
101名無しさん@お腹いっぱい。
2005/08/30(火) 15:38:56 age
2005/08/31(水) 16:15:27
103名無しさん@お腹いっぱい。
2005/10/12(水) 15:14:18 $ cat hoge.txt
A\textrm{1}\textrm{23}\textit{456}B
A\textrm{1}\textit{23}\textrm{456}B
のようなファイルがあるとして
\textrm{}を取り除いて
A123\textit{456}B
A1\textit{23}456B
を取り出したいと思い
$ < hoge.txt sed 's/\\textrm{\(.*\)}/\1/g'
と書きましたが,括弧の対応を外側から取るようで
A1}\textrm{23}\textit{456B
A1}\textit{23}\textrm{456B
と出力されてしまいます.
うまい方法はありませんか?
A\textrm{1}\textrm{23}\textit{456}B
A\textrm{1}\textit{23}\textrm{456}B
のようなファイルがあるとして
\textrm{}を取り除いて
A123\textit{456}B
A1\textit{23}456B
を取り出したいと思い
$ < hoge.txt sed 's/\\textrm{\(.*\)}/\1/g'
と書きましたが,括弧の対応を外側から取るようで
A1}\textrm{23}\textit{456B
A1}\textit{23}\textrm{456B
と出力されてしまいます.
うまい方法はありませんか?
2005/10/12(水) 15:44:31
{\(.*\)}の部分が最長マッチしちゃんだから、ここのマッチが}で切れるよう
{\([^}]*\)}に変えればいい。
{\([^}]*\)}に変えればいい。
106名無しさん@お腹いっぱい。
2005/11/24(木) 20:57:48 コマンドラインオプションの -n がよく理解できないんですが、どういう場面で使えばいいんでしょうか
2005/11/24(木) 21:06:03
matchしたところだけくださいってな場面
2005/11/24(木) 21:44:39
sedを「セド」と呼ぶぽ
2005/11/25(金) 01:55:29
設定ファイルのコメントを除くときとか
2006/01/06(金) 04:53:17
sedってホールドスペースは1個しか使えないの?
2006/01/06(金) 06:52:12
>>110
yes
yes
2006/01/06(金) 08:45:14
2006/01/06(金) 10:24:18
>>110
はい。
はい。
2006/01/06(金) 10:37:46
2006/01/06(金) 18:30:00
否定疑問文に
「んなことない」みたいな答え方はどうしたらいい?
「んなことない」みたいな答え方はどうしたらいい?
2006/01/06(金) 18:35:30
2006/01/06(金) 18:42:23
112は最近英語を知った厨房にすぎない
2006/01/06(金) 19:12:12
>>115
Yes. と答えればいいだけ。
Yes. と答えればいいだけ。
2006/01/06(金) 19:39:41
>>115
「んなことない」= "There is no such Japanese zither."
「んなことない」= "There is no such Japanese zither."
120名無しさん@お腹いっぱい。
2006/02/08(水) 18:38:37 @
2006/02/08(水) 19:42:26
ウナコーワ足んない
122名無しさん@お腹いっぱい。
2006/04/12(水) 02:41:13 深夜上げ
123名無しさん@お腹いっぱい。
2006/08/22(火) 16:18:15 ウムムム
2006/11/03(金) 09:37:20
同じ文字が3文字連続していたら表示したいのだが
2006/11/04(土) 02:04:43
2006/11/14(火) 20:28:59
grep, sed, awk
http://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/794/index.htm
この本ってどうですか?
単なるマニュアル以上の情報は載ってる?
http://www.shuwasystem.co.jp/books/wwwsrch/cgi-bin/content/794/index.htm
この本ってどうですか?
単なるマニュアル以上の情報は載ってる?
2006/11/14(火) 20:59:20
このシリーズはなんとなく印象が悪いので手にとってないな。そういえば。
128名無しさん@お腹いっぱい。
2006/11/18(土) 10:13:03 教えてください。
awk,sed,シェルを使い、カンマ区切りのファイルの1カラム目と2カラム目をキーに、
あるファイルに含まれる行を削除するにはどうすればよいのでしょうか?
例)
--aaa.csv--
111,222,333,444
555,666,777,888
999,000,111,222
--file1.txt--
111222
555666
の場合、aaa.csvより下記行のみほしい。
999,000,111,222
ご存知でしたら、ご教授ください。
よろしくお願いします。
awk,sed,シェルを使い、カンマ区切りのファイルの1カラム目と2カラム目をキーに、
あるファイルに含まれる行を削除するにはどうすればよいのでしょうか?
例)
--aaa.csv--
111,222,333,444
555,666,777,888
999,000,111,222
--file1.txt--
111222
555666
の場合、aaa.csvより下記行のみほしい。
999,000,111,222
ご存知でしたら、ご教授ください。
よろしくお願いします。
2006/11/18(土) 11:48:03
>>128
sed 's/\(...\)\(...\)/^\1,\2/' file1.txt | egrep -f- -v aaa.csv
sed 's/\(...\)\(...\)/^\1,\2/' file1.txt | egrep -f- -v aaa.csv
2006/11/18(土) 12:30:05
131名無しさん@お腹いっぱい。
2006/11/18(土) 20:48:36 >>129-130さんありがとうございました。
大変、参考になります。
私の説明がいけなかったのですが、
aaa.csvの1カラム目と2カラム目は固定ではなく、自由です。
ですので、
--aaa.csv--
11111,2222,333,444
55,666666,777,888
のような場合もあるのです。
また、file1.txtのほうも固定ではなく、
--file1.txt--
1111111222
555666
2233333
とスペースが入っている場合すらあります。
度々で恐縮ですが、
ご存知でしたら、ご教授ください。
よろしくお願いします。
大変、参考になります。
私の説明がいけなかったのですが、
aaa.csvの1カラム目と2カラム目は固定ではなく、自由です。
ですので、
--aaa.csv--
11111,2222,333,444
55,666666,777,888
のような場合もあるのです。
また、file1.txtのほうも固定ではなく、
--file1.txt--
1111111222
555666
2233333
とスペースが入っている場合すらあります。
度々で恐縮ですが、
ご存知でしたら、ご教授ください。
よろしくお願いします。
2006/11/18(土) 23:16:33
>>131
仕事で必要ならコンサルタントを雇いなさい。
仕事で必要ならコンサルタントを雇いなさい。
2006/11/19(日) 01:09:53
perl かなんかで書いちゃった方が早いよ。
2006/11/19(日) 07:09:03
sed,awk=perlかなんか
2006/11/28(火) 22:11:41
職場のマシン、perlが入ってなかった・・・ orz
2006/11/28(火) 22:52:45
この場合は、sedよりawkなんかな?
awkで書いてスピードアップのためのawkccしてしまうとか。
awkで書いてスピードアップのためのawkccしてしまうとか。
137名無しさん@お腹いっぱい。
2006/12/07(木) 00:21:57 ご存知でしたら、教えてください。
Solarisのawkで、変数に対しての比較に正規表現が使えないのですが、
よい方法をご存知の方がいましたら、教えて下さい。
nawkなら、上手くいくのですが、awkでは無理なのでしょうか?
また、Linuxのawkなら、上手くいきました。
よろしくお願いします。
例)下記の場合、./test.shを実行すると、test.awkの正規表現を使用している部分[if ( $7 ~ HENSU )]
でエラーになってしまいます。
--------------------test.shの中身--------------------
#!/bin/sh
HENSU="3A"
cat testdt.txt | \
awk -f test.awk HENSU=${HENSU}
exit 0
-----------------------------------------------------
--------------------testdt.txtの中身--------------------
aaaaabbbbcccdddeeeeeffffffgg3Aggggghhhhhhhiiiii
-----------------------------------------------------
--------------------test.awkの中身--------------------
BEGIN{
FS="\t"
}
{
if ( $7 ~ HENSU )
{
print $0
}
}
-----------------------------------------------------
Solarisのawkで、変数に対しての比較に正規表現が使えないのですが、
よい方法をご存知の方がいましたら、教えて下さい。
nawkなら、上手くいくのですが、awkでは無理なのでしょうか?
また、Linuxのawkなら、上手くいきました。
よろしくお願いします。
例)下記の場合、./test.shを実行すると、test.awkの正規表現を使用している部分[if ( $7 ~ HENSU )]
でエラーになってしまいます。
--------------------test.shの中身--------------------
#!/bin/sh
HENSU="3A"
cat testdt.txt | \
awk -f test.awk HENSU=${HENSU}
exit 0
-----------------------------------------------------
--------------------testdt.txtの中身--------------------
aaaaabbbbcccdddeeeeeffffffgg3Aggggghhhhhhhiiiii
-----------------------------------------------------
--------------------test.awkの中身--------------------
BEGIN{
FS="\t"
}
{
if ( $7 ~ HENSU )
{
print $0
}
}
-----------------------------------------------------
138名無しさん@お腹いっぱい。
2006/12/07(木) 20:54:41139名無しさん@お腹いっぱい。
2007/02/04(日) 08:46:50 ある文字列を
現在時間+引数
に置換したいのですが、どのようにすればいいですか?
perlを使えば簡単なんだけど、職場のマシンでperl が入ってなかった(汗)
ちなみに、sed とawk は使えるみたいです。
現在時間+引数
に置換したいのですが、どのようにすればいいですか?
perlを使えば簡単なんだけど、職場のマシンでperl が入ってなかった(汗)
ちなみに、sed とawk は使えるみたいです。
2007/02/06(火) 00:47:03
>>139
引数によるけど、dateコマンドが使えてたら、OKでは。
$ date +%R
00:45
$ date --date '6 min ago' +%R
00:39
という感じで引数を与えるといけると思う
引数によるけど、dateコマンドが使えてたら、OKでは。
$ date +%R
00:45
$ date --date '6 min ago' +%R
00:39
という感じで引数を与えるといけると思う
141名無しさん@お腹いっぱい。
2007/02/11(日) 21:34:20 入力ファイルを書き換えることはできる?
% sed 's/ABC/abc/' input.txt > output.txt
よくある上のようなプログラム(と呼ぶのかな?)で、
出力をoutput.txt
じゃなくてinput.txt のファイル自身を書き換えたいんだけど、可能かな?
つまり、余計なファイルは出力させたくないんだよ。
% sed 's/ABC/abc/' input.txt > output.txt
よくある上のようなプログラム(と呼ぶのかな?)で、
出力をoutput.txt
じゃなくてinput.txt のファイル自身を書き換えたいんだけど、可能かな?
つまり、余計なファイルは出力させたくないんだよ。
2007/02/11(日) 21:46:12
>>141
a.in-place オプションが使えるバージョンのsedを使う
b.inplaceというコマンドをつかってみる
c. (rm hoge.dat; sed 's/aaa/bbb/' > hoge.dat) < hoge.dat
あるいは
http://pc10.2ch.net/test/read.cgi/unix/1157601611/708-727
あたりを参照
a.in-place オプションが使えるバージョンのsedを使う
b.inplaceというコマンドをつかってみる
c. (rm hoge.dat; sed 's/aaa/bbb/' > hoge.dat) < hoge.dat
あるいは
http://pc10.2ch.net/test/read.cgi/unix/1157601611/708-727
あたりを参照
143141
2007/02/11(日) 21:57:512007/02/11(日) 22:27:47
問題解決したようだけどこぴぺして編集
・-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 オプションは無い。
OpenBSDの(ry
MacOSX の 標準 sed は FreeBSD 由来なので元になるバージョンに依存する。
MacOSX 10.3以降は FreeBSD 5.1R由来なので、 -iオプションはある。
以前のGNU sed には in-place editing 機能はない (Changelog によると 2001-09-25 ) (3.02には in place オプションは無い)
・-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 オプションは無い。
OpenBSDの(ry
MacOSX の 標準 sed は FreeBSD 由来なので元になるバージョンに依存する。
MacOSX 10.3以降は FreeBSD 5.1R由来なので、 -iオプションはある。
以前のGNU sed には in-place editing 機能はない (Changelog によると 2001-09-25 ) (3.02には in place オプションは無い)
2007/02/11(日) 23:12:50
>>144
まとめ乙
まとめ乙
2007/02/26(月) 05:04:17
あってもなくてもいい追加
HP-UX 11i Version 2: September 2004
http://docs.hp.com/ja/B2355-90851/sed.1.html
AIX 5L Version 5.2
http://inetsd01.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/sed.htm
SunOS 5.10
http://docs.sun.com/app/docs/doc/819-1210/6n3j74jsr?q=sed&a=view
いづれも 標準 sed に -i オプションは無い
HP-UX 11i Version 2: September 2004
http://docs.hp.com/ja/B2355-90851/sed.1.html
AIX 5L Version 5.2
http://inetsd01.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/sed.htm
SunOS 5.10
http://docs.sun.com/app/docs/doc/819-1210/6n3j74jsr?q=sed&a=view
いづれも 標準 sed に -i オプションは無い
2007/02/27(火) 15:18:51
2007/04/16(月) 23:15:15
仕事で root してる人に質問です。
皆さんどれぐらい仕事で sed スクリプト書いてます?
スクリプトの後々のメンテナンスと、既に周囲に読める人があまり
居ないこととを考えると、s での置換以外では perl を使うか、そ
うなったらもう全部 perl にした方がいいのかなと最近思ったりし
ます。
6行の sed スクリプトを書いたのですが、コメントが 8 行になっ
てしまって。。。
皆さんどれぐらい仕事で sed スクリプト書いてます?
スクリプトの後々のメンテナンスと、既に周囲に読める人があまり
居ないこととを考えると、s での置換以外では perl を使うか、そ
うなったらもう全部 perl にした方がいいのかなと最近思ったりし
ます。
6行の sed スクリプトを書いたのですが、コメントが 8 行になっ
てしまって。。。
2007/04/17(火) 00:51:04
sedで複数行書くのは犯罪だ。awkで書こう
2007/04/17(火) 00:55:39
そんなん読めないやつに管理まかせちゃいかんよ。
2007/04/18(水) 23:42:12
2007/04/19(木) 01:05:48
sedの複数行は本当に頭痛がしてくる。
perでlさえ可読性悪いと言われてるのにその比じゃない。
個人的趣味以外で書いてはいけない
perでlさえ可読性悪いと言われてるのにその比じゃない。
個人的趣味以外で書いてはいけない
2007/04/21(土) 01:38:29
sed のコードのそばに、
それを perl なり awk なりで書いたものを
コメントとして残せば
・可読性→クリア
・コメント行数→クリア
・メンテ→工数倍w
それを perl なり awk なりで書いたものを
コメントとして残せば
・可読性→クリア
・コメント行数→クリア
・メンテ→工数倍w
2007/04/21(土) 03:10:13
s2pでいいじゃん、とかおもったりおもわなかったり
2007/05/08(火) 00:15:31
sedで千行あるファイルの
100行目から150行目を
抜き出すには
どうしたらいいですか
100行目から150行目を
抜き出すには
どうしたらいいですか
2007/05/08(火) 00:17:32
sed -ne "100,150p"
2007/05/08(火) 11:04:38
sed -n 100,150p
158名無しさん@お腹いっぱい。
2007/06/04(月) 20:43:16 単語の置換をしたいんだけど、どうしたらよいでしょうか
具体的な例で言うと、あるソース中の int を char に全置換したい
んだけど 単純に sed "s/int/char/g" だと printf まで変わって
しまうから それは避けたい。
「単語」の条件は 英数字+アンダースコア (\w+) であること。
これ絶対FAQだと思うんだけど、 「sed 単語 置換」 で検索しても
答にたどり着かなかったのですよ。 困った。
具体的な例で言うと、あるソース中の int を char に全置換したい
んだけど 単純に sed "s/int/char/g" だと printf まで変わって
しまうから それは避けたい。
「単語」の条件は 英数字+アンダースコア (\w+) であること。
これ絶対FAQだと思うんだけど、 「sed 単語 置換」 で検索しても
答にたどり着かなかったのですよ。 困った。
2007/06/04(月) 21:26:42
perl -pe 's/\bint\b/char/'
2007/06/04(月) 21:37:31
2007/06/04(月) 22:20:07
\< \>で思い出したけど、HP-UXのgrepではこれ使えんのだよな。
同じregexpライブラリを使っているなら、sedでも使えんな。
同じregexpライブラリを使っているなら、sedでも使えんな。
163159
2007/06/04(月) 23:51:11 スレタイ読まずに書き込んで感謝されちゃったよ
こういうのを
いたたまれない気持ち
っていうのかな
こういうのを
いたたまれない気持ち
っていうのかな
2007/07/01(日) 11:49:33
1
2
3
4
というtemp.txtをsed N temp.txtとすると
1
2
3
4
になるのはわかるのですがsed n temp.txtにすると
2
3
4
にならないのはどうしてですか
夜も眠れません
2
3
4
というtemp.txtをsed N temp.txtとすると
1
2
3
4
になるのはわかるのですがsed n temp.txtにすると
2
3
4
にならないのはどうしてですか
夜も眠れません
2007/07/03(火) 10:30:14
sed -e N -e 's/^/X/' -e 's/$/x/'
sed -e n -e 's/^/X/' -e 's/$/x/'
sed -e n -e 's/^/X/' -e 's/$/x/'
166名無しさん@お腹いっぱい。
2007/07/03(火) 18:48:39 下記のように、置換する文字に変数って使えないんでしょうか?
設定ファイル100個飛ばしてしまったorz
forでループして、一気に変えたいんですが、$mlとそのまま置換されて
しまいます。このままだと、全部手がきです(T.T)
どなたかお助け下さい。
ml=hoge
sed 's/$ml/foo/'
設定ファイル100個飛ばしてしまったorz
forでループして、一気に変えたいんですが、$mlとそのまま置換されて
しまいます。このままだと、全部手がきです(T.T)
どなたかお助け下さい。
ml=hoge
sed 's/$ml/foo/'
2007/07/03(火) 18:51:10
2007/07/03(火) 19:17:43
そしてmlが"/"を含んでいて破滅する。
2007/07/03(火) 19:30:17
↑
できました!(T.T)
ありがとうございました。一時は徹夜を覚悟しました。
本当に助かりました。ありがとう!
できました!(T.T)
ありがとうございました。一時は徹夜を覚悟しました。
本当に助かりました。ありがとう!
2007/07/09(月) 22:52:03
>>168
まさにそれ。
やりたいのは、特定の文字列を
現在のディレクトリ位置に置換したいということなんですが、
シェルスクリプトで
sed s/hoge/$PWD/g < file1.txt > file2.txt
と書くと、エラーになってしまいます。
($PWDが/を含んでいるから)
だれかうまいやり方わかりませんか?
まさにそれ。
やりたいのは、特定の文字列を
現在のディレクトリ位置に置換したいということなんですが、
シェルスクリプトで
sed s/hoge/$PWD/g < file1.txt > file2.txt
と書くと、エラーになってしまいます。
($PWDが/を含んでいるから)
だれかうまいやり方わかりませんか?
2007/07/09(月) 22:54:37
sed "s|hoge|$PWD|g" < file1.txt > file2.txt
2007/07/09(月) 23:43:40
173名無しさん@お腹いっぱい。
2007/07/12(木) 20:37:34 sedでラベルを1行スクリプトに組み込むのは無理ですか?
sed '/^$/!{N;};/^$/{s/\n //g;}
Nが終わったあとにスクリプトの最初に戻したいのですが美味くいきません・・・
sed '/^$/!{N;};/^$/{s/\n //g;}
Nが終わったあとにスクリプトの最初に戻したいのですが美味くいきません・・・
174名無しさん@お腹いっぱい。
2007/07/12(木) 21:01:50 【参院選】民主党から、在日コリアンの期待背負った金氏(民団幹部)が立候補…在日参政権訴え
http://news22.2ch.net/test/read.cgi/newsplus/1184227903/l50
http://news22.2ch.net/test/read.cgi/newsplus/1184227903/l50
2007/07/12(木) 21:55:25
>>173
普通にできるけど。:label; hoge; b label みたいに。
普通にできるけど。:label; hoge; b label みたいに。
176170
2007/07/12(木) 23:18:53 報告おくれましたが、無事できました。
本当にどうもありがとう!
本当にどうもありがとう!
2007/07/14(土) 03:55:18
2007/07/14(土) 09:07:49
2007/07/14(土) 09:12:01
省略せずに結果を書くと、
sed ':label;/^$/!{N;};b label;/^$/{s/\n //g;}'
↑な。これで何をやりたいかは知らんが。
sed ':label;/^$/!{N;};b label;/^$/{s/\n //g;}'
↑な。これで何をやりたいかは知らんが。
2007/07/14(土) 13:40:28
>>178
ラベルの後に続けて書けるのはGNU含む一部のsedのみ。
だから普通じゃない。
普通はラベルごとに切って -e で繋ぐ。
sed -e ':label' -e '/^$/!{N;};b label' -e '/^$/{s/\n //g;}'
ラベルの後に続けて書けるのはGNU含む一部のsedのみ。
だから普通じゃない。
普通はラベルごとに切って -e で繋ぐ。
sed -e ':label' -e '/^$/!{N;};b label' -e '/^$/{s/\n //g;}'
181名無しさん@お腹いっぱい。
2007/07/19(木) 11:31:07 タブ文字(0x09)だけをカンマに置換する方法はありますか?
バージョンはGNU sed の 3.02です。
バージョンはGNU sed の 3.02です。
2007/07/19(木) 11:46:36
普通に sed 's/\t/,/g'
2007/07/19(木) 12:11:34
>>182
3.02は\tを使えません
3.02は\tを使えません
2007/07/19(木) 12:14:25
>>181
普通にタブ文字を入れる。
普通にタブ文字を入れる。
2007/07/19(木) 12:16:24
普通に sed 's/ /,/g'
タブのところは、シェル上なら Ctrl-Vに続けて入力。
シングルクォート必須。
なお、上の sed をコピペしても、TABが表示上で変換されてるので動かないと思う。
タブのところは、シェル上なら Ctrl-Vに続けて入力。
シングルクォート必須。
なお、上の sed をコピペしても、TABが表示上で変換されてるので動かないと思う。
2007/07/19(木) 13:25:58
2007/07/19(木) 13:31:46
2007/07/19(木) 13:35:52
>>185 では動きませんでした。よく知りもせず、確認もせずに回答しないでください。
2007/07/19(木) 13:41:02
2007/07/20(金) 15:25:43
改行がCRLFをLFにするには、
sed -e 's/\r//' < target > out や
sed -e 's/^M//' < target > out
で出来るんだけど、逆にLFをCRLFにするにはどーしたら良いですか?
sed -e 's/\r\n/\n/'
sed -e 's/^M^J/\n/'
sed -e 's/^M\^J/\n/'
いずれもだめでした。
sedは GNU sed 4.1.5版 です。
sed -e 's/\r//' < target > out や
sed -e 's/^M//' < target > out
で出来るんだけど、逆にLFをCRLFにするにはどーしたら良いですか?
sed -e 's/\r\n/\n/'
sed -e 's/^M^J/\n/'
sed -e 's/^M\^J/\n/'
いずれもだめでした。
sedは GNU sed 4.1.5版 です。
2007/07/20(金) 16:06:36
>>190
普通に sed 's/$/\r/'
普通に sed 's/$/\r/'
192190
2007/07/20(金) 18:19:11 出来ました。
193名無しさん@お腹いっぱい。
2007/07/21(土) 00:53:54 おお、ちょうどいい!もれも似たようなことで
CR/LFを<BR>にしたかったw
dクスでつ190-191
CR/LFを<BR>にしたかったw
dクスでつ190-191
2007/08/08(水) 19:34:32
正規表現にマッチした文字列だけを出力したい というとき
たとえば文字列の前の方の数字だけ取り出すときは
sed -n "s/^\s*\([0-9]*\).*$/\1/p"
みたいに 正規表現にマッチした全体をマッチした部分で置換する
ようにやってたのですが、いちいち置換するのは 格好悪いので
部分\1だけ出力するような格好いい書き方ありませんか?
たとえば文字列の前の方の数字だけ取り出すときは
sed -n "s/^\s*\([0-9]*\).*$/\1/p"
みたいに 正規表現にマッチした全体をマッチした部分で置換する
ようにやってたのですが、いちいち置換するのは 格好悪いので
部分\1だけ出力するような格好いい書き方ありませんか?
2007/08/09(木) 00:53:55
perl -nle 'print $1 if /\b(\d+)/'
2007/08/09(木) 03:14:20
2007/08/09(木) 13:19:08
sedスレのつもりだったんだけど、まあいいや。ありがとん。
2007/08/16(木) 23:03:21
あるテキストファイルの1行目〜最終行の1000行前までを
取り出したいのですが、どのようにすればよいでしょうか?
(ちょうど tail -n 1000 tmp.txt で取り出せない部分を
簡単に得たいのですが)
取り出したいのですが、どのようにすればよいでしょうか?
(ちょうど tail -n 1000 tmp.txt で取り出せない部分を
簡単に得たいのですが)
2007/08/16(木) 23:07:04
awk '{a[NR]=$0}NR>20{print a[NR-1000]}'
2007/08/16(木) 23:08:31
まちがえた。
sedでやっても美しくならないから、awkで
awk '{a[NR]=$0}NR>1000{print a[NR-1000]}'
sedでやっても美しくならないから、awkで
awk '{a[NR]=$0}NR>1000{print a[NR-1000]}'
2007/08/17(金) 08:48:47
sed -n '1h;1!H;1001,${g;P;s/[^\n]*\n//;h}'
2007/08/17(金) 12:49:09
sedでやらなきゃいかんの?
2007/08/17(金) 13:44:34
>>202
sedスレなので
sedスレなので
2007/08/17(金) 14:06:45
なんでsedスレを選んだんだろ。
2007/08/17(金) 15:15:15
そこにsedがあるから
2007/08/17(金) 21:24:35
2007/08/21(火) 03:25:33
sed -n ':b;1001,${P;N;D};N;bb'
詰め
詰め
208名無しさん@お腹いっぱい。
2007/09/06(木) 11:55:22 下のような行があったとして
command, --いろいろなコメント
command, だけ残して、--いろいろなコメント(--から後ろ)を全部削除
したいのですがどうすれば良いんでしょうか?
本を読んでもよくわかりません。どうかお助け下さい。
command, --いろいろなコメント
command, だけ残して、--いろいろなコメント(--から後ろ)を全部削除
したいのですがどうすれば良いんでしょうか?
本を読んでもよくわかりません。どうかお助け下さい。
2007/09/06(木) 12:02:37
sed 's/--.*//'
211名無しさん@お腹いっぱい。
2007/09/06(木) 13:04:52 質問ばかりで恐縮なのですが、もうひとつ質問があります。
line...$
な行があったとして、^line を見つけた時に、下のようにおしりに
HOGEな文字列を追加したい場合はどうすれば良いのでしょうか?
line... HOGE$
ほんと、勉強不足で申しわけありません。オライリー本を片手にやってる
のですが、どうしてもわかりません。
line...$
な行があったとして、^line を見つけた時に、下のようにおしりに
HOGEな文字列を追加したい場合はどうすれば良いのでしょうか?
line... HOGE$
ほんと、勉強不足で申しわけありません。オライリー本を片手にやってる
のですが、どうしてもわかりません。
2007/09/06(木) 13:12:43
2007/09/06(木) 13:31:20
>>211 の $ は文字じゃなくて、正規表現の $ の意味ではないのかと
2007/09/06(木) 14:15:56
215名無しさん@お腹いっぱい。
2007/10/07(日) 16:15:05 仮ファイルを使わずに
入力ファイル自身を書き換えることは出来ますか?
入力ファイル自身を書き換えることは出来ますか?
2007/10/07(日) 16:58:58
-i
2007/10/11(木) 01:21:12
//exec($command,$arg);
とコメントアウトされた行をアンコメントしたいんだけど
sed 's/\/\/(exec\(\$command,\$arg\);)/\\1/' -i hoge.php
とかやっても思ったとおりに置換されない
(とか$とか/とかをうまくエスケープできてないだけなのか
どうなのかがよくわかんないんだけど、どこが間違ってる?
とコメントアウトされた行をアンコメントしたいんだけど
sed 's/\/\/(exec\(\$command,\$arg\);)/\\1/' -i hoge.php
とかやっても思ったとおりに置換されない
(とか$とか/とかをうまくエスケープできてないだけなのか
どうなのかがよくわかんないんだけど、どこが間違ってる?
2007/10/11(木) 01:30:55
sed -e 's@//\(exec(\$command,\$arg);\)@\1@'
219名無しさん@お腹いっぱい。
2007/11/11(日) 11:05:40 教えて下さい。
例
12345kkk6789
23456kkk4321
32456kkk9876
のようなテキストファイルが複数あり、
各行のkkk以降(kkkも含めて)を削除したいです。
1日考えてダメだったので、だれかお助け願います。
例
12345kkk6789
23456kkk4321
32456kkk9876
のようなテキストファイルが複数あり、
各行のkkk以降(kkkも含めて)を削除したいです。
1日考えてダメだったので、だれかお助け願います。
2007/11/11(日) 11:11:26
sed -e 's/kkk.*//'
221名無しさん@お腹いっぱい。
2007/11/11(日) 13:48:54 ありがとうございます。
222名無しさん@お腹いっぱい。
2007/12/19(水) 03:19:13 sed -e '500,$d' の500の部分を変数にすることって出来ますか?
例えば、sed -e '$no,$d' みたいな感じで実行するとエラーになって困ってます。
例えば、sed -e '$no,$d' みたいな感じで実行するとエラーになって困ってます。
2007/12/19(水) 03:39:03
>>222
シングルクォートをダブルクォートに変えてみな。
シングルクォートをダブルクォートに変えてみな。
224222
2007/12/19(水) 03:55:032007/12/19(水) 04:23:23
>>224
あ、>>222 をちゃんと見てなかった。
$d は変数じゃなくて行末とデリートか。
なら、後ろの $ はエスケープが要るな。
sed -e "$no,\$d"
> そもそも変数を指定することが出来ないというオチなのでしょうか?
sed 自身が変数を解釈しているわけではない。
この場合は sed に引数を渡すシェルが処理をしている。
bash を例にとって説明すると >>222 の形式では
シングルクォートの中身は展開されずに
そのままの文字列が sed に渡される。
ダブルクォートにすると中身を展開するので
$no と $d を変数と解釈して設定された値に
入れ替わったものが sed に渡される。
この辺の挙動をちゃんと知りたいのならおまいさんが
使っているシェルの man を読め。
あ、>>222 をちゃんと見てなかった。
$d は変数じゃなくて行末とデリートか。
なら、後ろの $ はエスケープが要るな。
sed -e "$no,\$d"
> そもそも変数を指定することが出来ないというオチなのでしょうか?
sed 自身が変数を解釈しているわけではない。
この場合は sed に引数を渡すシェルが処理をしている。
bash を例にとって説明すると >>222 の形式では
シングルクォートの中身は展開されずに
そのままの文字列が sed に渡される。
ダブルクォートにすると中身を展開するので
$no と $d を変数と解釈して設定された値に
入れ替わったものが sed に渡される。
この辺の挙動をちゃんと知りたいのならおまいさんが
使っているシェルの man を読め。
2007/12/19(水) 07:23:30
2007/12/19(水) 13:56:00
sedの置換について質問 (GNU sed 4.x)
タブ(\t)は置換できるのですが改行(\n)が置換できません。
例えば # cat a.txt
aaa
bbb
aaa(タブ)bbb
3行目の(タブ)区切りは置換できるけど1行目と2行目にマッチした文字を置換できません。
どうやったらできますか?
タブ(\t)は置換できるのですが改行(\n)が置換できません。
例えば # cat a.txt
aaa
bbb
aaa(タブ)bbb
3行目の(タブ)区切りは置換できるけど1行目と2行目にマッチした文字を置換できません。
どうやったらできますか?
2007/12/19(水) 14:48:42
何をどう置換したいのだ?
sed のスクリプトのほうも示してほしいのだが
sed のスクリプトのほうも示してほしいのだが
230228
2007/12/19(水) 18:53:01 a.txtの内容
----------
aaa
bbb
aaa bbb
----------
このa.txtを
----------
eee
fff
aaa bbb
----------
↑のように置換したい。
sed -i 's/aaa\nbbb/eee\nfff/' a.txt
これで出来ると思ったのですが出来なかったので。
どうやったらできますか?
----------
aaa
bbb
aaa bbb
----------
このa.txtを
----------
eee
fff
aaa bbb
----------
↑のように置換したい。
sed -i 's/aaa\nbbb/eee\nfff/' a.txt
これで出来ると思ったのですが出来なかったので。
どうやったらできますか?
2007/12/19(水) 19:02:25
-e 's/^aaa$/eee/' -e 's/^bbb$/fff/'
2007/12/19(水) 19:25:27
>>231
アフォかw
アフォかw
233228
2007/12/19(水) 19:47:13 訂正
a.txtの内容
----------
aaa
bbb
ccc
bbb
----------
このa.txtを
----------
aaa
bbb
ccc
ddd
----------
↑のように置換したい。
この文字は何行目にあるか不明だとして
一番下のbbbをdddに置換することはできますか?
a.txtの内容
----------
aaa
bbb
ccc
bbb
----------
このa.txtを
----------
aaa
bbb
ccc
ddd
----------
↑のように置換したい。
この文字は何行目にあるか不明だとして
一番下のbbbをdddに置換することはできますか?
2007/12/19(水) 20:03:31
>>233
sedじゃなきゃいかんの?
sedじゃなきゃいかんの?
2007/12/19(水) 20:06:41
236228
2007/12/19(水) 20:21:372007/12/19(水) 21:07:06
>>236
俺のところではエラーにならないけどな。
わかりやすいように改行を入れるとこんな感じ
↓
sed -n '
${
p
q
}
:s
N
s/ccc\nbbb/ccc\nddd/
P
D
b s'
俺のところではエラーにならないけどな。
わかりやすいように改行を入れるとこんな感じ
↓
sed -n '
${
p
q
}
:s
N
s/ccc\nbbb/ccc\nddd/
P
D
b s'
2007/12/19(水) 21:24:57
239228
2007/12/19(水) 21:26:39 1行で出来ませんか?
2007/12/19(水) 22:06:56
sed -n '${p;q;};:s;N;s/ccc\nbbb/ccc\nddd/;P;D;b s'
2007/12/19(水) 22:24:14
>>241
できました。ありがとう。
できました。ありがとう。
2008/01/05(土) 05:42:11
sed -n "m(_ _)m|-_-|(っ゚ロ゚)っ"
2008/01/05(土) 17:14:31
sed: 1: "m(_ _)m|-_-|(っ゚ロ゚)っ": invalid command code m
2008/01/30(水) 03:09:39
( を に痴漢したいんだけど
$ cat hoge | sed -e "s/\\\(/ /"
ってやってもなんか駄目っぽい
なんで?
$ cat hoge | sed -e "s/\\\(/ /"
ってやってもなんか駄目っぽい
なんで?
2008/01/30(水) 05:08:34
2008/01/30(水) 10:17:02
sedはバックスラッシュいらない。
グループ化したいときはいるけど。
グループ化したいときはいるけど。
2008/01/30(水) 23:45:42
2008/01/31(木) 01:10:52
大人になりましょう
2008/01/31(木) 15:44:59
ある単語(例:foo)をhoge-"
と置換したいんですが、
sed -e "s/foo/hoge-"/g"
だと当たり前だけどエラーが出ます・・・。
ダブルクォートとかって、どうやって指定したらいいんでしょう?
と置換したいんですが、
sed -e "s/foo/hoge-"/g"
だと当たり前だけどエラーが出ます・・・。
ダブルクォートとかって、どうやって指定したらいいんでしょう?
2008/01/31(木) 15:54:58
sed -e "s/foo/hoge-\"/g"
2008/01/31(木) 16:18:41
2008/02/02(土) 11:55:41
winのコマンドラインパーサーは腐っているから-fで渡したほうが精神的によろしい。
お邪魔します^^
あのスレの>>144さんありがとうございます
私の目標と現状を書いておいたほうが良いのかな
★Aタイトル一覧表を作る(”タイトル”の部分はそれぞれ対応したファイルにリンクを貼る)
★Bタイトル一覧表に対応したデータファイルをタイトルの数だけ作る
但し★Bを作成する前に全てのデータを1ファイルに集約した後ソートして
重複チェック、データ欠如のチェックしたいです
・データファイルはPC内にある既存のファイルから必要な部分を抽出して作成する
●必要な部分●
@<title>〜</title>(元ファイルは1行の場合と2行なたは3行の場合がある)
A<object 〜 /object>(元ファイルは1行の場合と2行なたは3行の場合がある)
B<span>〜</span>(備考欄に使おうと自分で全てのファイルに付け足しました現在はタグだけです)
(元ファイルから抽出と新規作成にタグだけ付け足しても同じ内容になります。どちらでも構いません)
他のところで教えてくれた方が居て★Aの作成と、★Bの@ABの個別取得できています
★Aの一覧表からテスト作成のリンクファイルに飛ぶことも出来ています
★Bのデータファイルを作れないで居ます
私のレベルなんですが他の言語スレで呆れ返られるくらいの初心者で
単語の名前や意味は殆どわからないです
結局、自分のやりたいことはファイル操作であることが最近知りました
それまでの経緯でHTMLとジャバスクリプトと正規表現の本
それからperlの本は自宅にあります
sed全くわかっていないです^^;
単語の意味がわからない事だらけで意味を調べて廻る事でせいいっぱいで
なかなか前進しないままです
とり急ぐわけではないのですが
もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
どうぞよろしくお願い致します
あのスレの>>144さんありがとうございます
私の目標と現状を書いておいたほうが良いのかな
★Aタイトル一覧表を作る(”タイトル”の部分はそれぞれ対応したファイルにリンクを貼る)
★Bタイトル一覧表に対応したデータファイルをタイトルの数だけ作る
但し★Bを作成する前に全てのデータを1ファイルに集約した後ソートして
重複チェック、データ欠如のチェックしたいです
・データファイルはPC内にある既存のファイルから必要な部分を抽出して作成する
●必要な部分●
@<title>〜</title>(元ファイルは1行の場合と2行なたは3行の場合がある)
A<object 〜 /object>(元ファイルは1行の場合と2行なたは3行の場合がある)
B<span>〜</span>(備考欄に使おうと自分で全てのファイルに付け足しました現在はタグだけです)
(元ファイルから抽出と新規作成にタグだけ付け足しても同じ内容になります。どちらでも構いません)
他のところで教えてくれた方が居て★Aの作成と、★Bの@ABの個別取得できています
★Aの一覧表からテスト作成のリンクファイルに飛ぶことも出来ています
★Bのデータファイルを作れないで居ます
私のレベルなんですが他の言語スレで呆れ返られるくらいの初心者で
単語の名前や意味は殆どわからないです
結局、自分のやりたいことはファイル操作であることが最近知りました
それまでの経緯でHTMLとジャバスクリプトと正規表現の本
それからperlの本は自宅にあります
sed全くわかっていないです^^;
単語の意味がわからない事だらけで意味を調べて廻る事でせいいっぱいで
なかなか前進しないままです
とり急ぐわけではないのですが
もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
どうぞよろしくお願い致します
2008/04/14(月) 01:07:47
>>ALL
Win版のsedの話なんだけど、sedスレがUNIX板とLinux板に
しか無いので誘導させてもらったけどいいっすか?
>>254
PerlやJavaScript(JScript)がわかるなら、そっちでやったほうがいいね。
マッチングさせたい物が1〜3行に渡るって所でモレにはわからん。
できるかもしれないが複雑になるような希ガス
Win版のsedの話なんだけど、sedスレがUNIX板とLinux板に
しか無いので誘導させてもらったけどいいっすか?
>>254
PerlやJavaScript(JScript)がわかるなら、そっちでやったほうがいいね。
マッチングさせたい物が1〜3行に渡るって所でモレにはわからん。
できるかもしれないが複雑になるような希ガス
144さん
ありがとうです
お声かけて頂いただけで嬉しかったです
まだ解説本を購入して10日程です
全部読んでいないのでどこまでできるかわかりませんが
自力でもう少し頑張ってみます
本当にありがとうございました^^
お疲れのところすいませんでした
ありがとうです
お声かけて頂いただけで嬉しかったです
まだ解説本を購入して10日程です
全部読んでいないのでどこまでできるかわかりませんが
自力でもう少し頑張ってみます
本当にありがとうございました^^
お疲れのところすいませんでした
2008/04/14(月) 23:09:24
よく流れがわからんが
やりたいこと全部を一気に教えてもらうとかせずに
知りたいポイントをしぼって一つずつ質問すれば答えてくれると思うよ。
やりたいこと全部を一気に教えてもらうとかせずに
知りたいポイントをしぼって一つずつ質問すれば答えてくれると思うよ。
2008/04/15(火) 03:56:38
各板で暗黙のルールみたいなのがあるんだろうか
やりたいことは先に書いた通りなんだけど
プログラム板というところで初めはHTMLの読み込み方を聞いてみたんですよ
そしたら「何がやりたいのかよくわからん。もっと詳しく。」ばかりレスが付くんです
それで私が「ファイルの読み込みです」と返事をすると「具体的にここに書かないとわからない」
これを繰り返しているうちに「後出し条件だ」とか「それはプロにしか出来ないレベル」とか
結局何も返答しないのに威張ってばっかり。
まるで解答者(のフリをして答えない)人の相手をするばかりで全く進まない
解答者らしき人を問い詰めていったら
私のような人間を探してネタをパクッタリいい人を装いながら客として誘導したり
最初から教える気は全く無いって事でした。無駄な時間ばかり過ぎていくので
板を変えてプログラマー板ってとこへも行ってみたのですが
そこでも「もっと具体的に」「わからん全部書け」「質問以前に問題あり」
散々小ばかにされては解答は無し。
やはり同じような輩が蔓延っていました
2chで教えて貰おうとするのが間違っているのかもしれません
自分は今までパソコンソフトには全く興味が無かったので
こういう汚い連中が露骨に威張り倒してるところがあるとは知りませんでした
他の板でもひどい言葉はよく見かけますが
大体はまともな意見が多いので誰かがフォローしてくれたりしますが
パソコン関係は解答者が圧倒的に優位なようだ
「只で教えてるんだぞゴルァ」とかも言われました(一度も解答しない人にw)
只で教えたくないならスルーでいいのではと言い返したら
質問者としてなって無いとか言い出す始末
そういうことでまとめて書いておいたんです
解答者の振りをする連中は答えないのに質問者をいじって遊んでるんです
でわ
やりたいことは先に書いた通りなんだけど
プログラム板というところで初めはHTMLの読み込み方を聞いてみたんですよ
そしたら「何がやりたいのかよくわからん。もっと詳しく。」ばかりレスが付くんです
それで私が「ファイルの読み込みです」と返事をすると「具体的にここに書かないとわからない」
これを繰り返しているうちに「後出し条件だ」とか「それはプロにしか出来ないレベル」とか
結局何も返答しないのに威張ってばっかり。
まるで解答者(のフリをして答えない)人の相手をするばかりで全く進まない
解答者らしき人を問い詰めていったら
私のような人間を探してネタをパクッタリいい人を装いながら客として誘導したり
最初から教える気は全く無いって事でした。無駄な時間ばかり過ぎていくので
板を変えてプログラマー板ってとこへも行ってみたのですが
そこでも「もっと具体的に」「わからん全部書け」「質問以前に問題あり」
散々小ばかにされては解答は無し。
やはり同じような輩が蔓延っていました
2chで教えて貰おうとするのが間違っているのかもしれません
自分は今までパソコンソフトには全く興味が無かったので
こういう汚い連中が露骨に威張り倒してるところがあるとは知りませんでした
他の板でもひどい言葉はよく見かけますが
大体はまともな意見が多いので誰かがフォローしてくれたりしますが
パソコン関係は解答者が圧倒的に優位なようだ
「只で教えてるんだぞゴルァ」とかも言われました(一度も解答しない人にw)
只で教えたくないならスルーでいいのではと言い返したら
質問者としてなって無いとか言い出す始末
そういうことでまとめて書いておいたんです
解答者の振りをする連中は答えないのに質問者をいじって遊んでるんです
でわ
2008/04/15(火) 06:30:34
>>258
そのとおりです。
回答が欲しい場合はエスパースレへ
↓
【エスパー】くだ質【エラーメッセージ不要】(1)
http://pc11.2ch.net/test/read.cgi/unix/1207042632/
そのとおりです。
回答が欲しい場合はエスパースレへ
↓
【エスパー】くだ質【エラーメッセージ不要】(1)
http://pc11.2ch.net/test/read.cgi/unix/1207042632/
2008/04/15(火) 06:40:21
うわぁ…これはひどい。
書き込む前に自分のレスを読み返してないのか?
全然まとまって無いし、誤字脱字だらけ。
スクリプト書く前にやりたい事を
簡潔な日本語で書く練習をした方が良い。
いや、マジで。
書き込む前に自分のレスを読み返してないのか?
全然まとまって無いし、誤字脱字だらけ。
スクリプト書く前にやりたい事を
簡潔な日本語で書く練習をした方が良い。
いや、マジで。
261255
2008/04/15(火) 07:51:22 >>258
暗黙のルールという訳じゃないけどできるだけ楽して、人から聞きだそうという態度の人は煽られるね。
あなたにそういうつもりは無くても例えば、せっかくこのスレまで誘導したのに、
>sed全くわかっていないです^^;
>もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
これだけ見ると、1から10まで教えろって言ってるように見えるよ。
色々なスレを見ればわかるが、質問をして、あなたのように煽られる人と、
煽られない人がいるが、その違いがわからないのであれば、
「2chで教えて貰おうとするのが間違っているのかもしれません」という事。
暗黙のルールという訳じゃないけどできるだけ楽して、人から聞きだそうという態度の人は煽られるね。
あなたにそういうつもりは無くても例えば、せっかくこのスレまで誘導したのに、
>sed全くわかっていないです^^;
>もしよろしければお時間の都合の良いときだけで結構ですので教えて頂けましたら幸いです
これだけ見ると、1から10まで教えろって言ってるように見えるよ。
色々なスレを見ればわかるが、質問をして、あなたのように煽られる人と、
煽られない人がいるが、その違いがわからないのであれば、
「2chで教えて貰おうとするのが間違っているのかもしれません」という事。
2008/04/15(火) 11:53:57
>254が辿ってきたのは俺の知る限りこの辺かな。
http://pc11.2ch.net/test/read.cgi/hp/1205922529/35
http://pc11.2ch.net/test/read.cgi/php/1203935151/275
http://pc11.2ch.net/test/read.cgi/tech/1186030400/664
http://pc11.2ch.net/test/read.cgi/tech/1172242542/126
http://pc11.2ch.net/test/read.cgi/software/1205309656/109
童謡のいぬのおまわりさんみたいな状況だな。
http://pc11.2ch.net/test/read.cgi/hp/1205922529/35
http://pc11.2ch.net/test/read.cgi/php/1203935151/275
http://pc11.2ch.net/test/read.cgi/tech/1186030400/664
http://pc11.2ch.net/test/read.cgi/tech/1172242542/126
http://pc11.2ch.net/test/read.cgi/software/1205309656/109
童謡のいぬのおまわりさんみたいな状況だな。
2008/04/15(火) 14:20:36
みんなレスありがと
答えてくれたことにお礼を言うのは当たり前だと思うんだけど
今までのスレは答える前から上から目線で結局答えてくれない
この人たちは解答を知らないのでは?と思うようになったんですよ
昨日も私が質問しているように見えるので他の質問に答えれないだろ
あの質問もお前だろって言うので
「それ自分じゃないよその質問には答えてあげればいいよ」とかやりあってたら
その質問者が現れた
当然のように解答者にはペコペコ謝ってる(これからも解答してもらうために)
この先、解答は期待できない私には一言もなし
初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
手持ちのperlは3冊ある(超初心者用、初心者用、命令逆引き辞書)
perl解説本ではファイル操作の解説に至るまでにCGIの解説ばかりだ
やっとファイル操作の解説まで読み進めたら5ページほどで終わってるorz
perlでファイル操作は中級レベルの解説本を買わなければいけないのかと思うようになった
他の言語を調べてみた
CとかjavaとかAjax
初めのほうからファイル操作は解説している
ただ解説に使っている言葉自体が命令を使って解説しているので自分には全く理解不能だorz
>>262
それ以外にも軽く10スレ以上は廻ったよ
それで何か言語を覚えなきゃダメだなってわかったんだ
答えてくれたことにお礼を言うのは当たり前だと思うんだけど
今までのスレは答える前から上から目線で結局答えてくれない
この人たちは解答を知らないのでは?と思うようになったんですよ
昨日も私が質問しているように見えるので他の質問に答えれないだろ
あの質問もお前だろって言うので
「それ自分じゃないよその質問には答えてあげればいいよ」とかやりあってたら
その質問者が現れた
当然のように解答者にはペコペコ謝ってる(これからも解答してもらうために)
この先、解答は期待できない私には一言もなし
初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
手持ちのperlは3冊ある(超初心者用、初心者用、命令逆引き辞書)
perl解説本ではファイル操作の解説に至るまでにCGIの解説ばかりだ
やっとファイル操作の解説まで読み進めたら5ページほどで終わってるorz
perlでファイル操作は中級レベルの解説本を買わなければいけないのかと思うようになった
他の言語を調べてみた
CとかjavaとかAjax
初めのほうからファイル操作は解説している
ただ解説に使っている言葉自体が命令を使って解説しているので自分には全く理解不能だorz
>>262
それ以外にも軽く10スレ以上は廻ったよ
それで何か言語を覚えなきゃダメだなってわかったんだ
2008/04/15(火) 14:28:27
結局、私の言いたかったのは答えれないのに答える振りしてまで
優位に立ちながら出てこなくてもいいのではないのかってこと
どうせ答えないのにいかにも「解答欲しけりゃぺこぺこするのは当たり前だろカス氏ね」的な態度とって
それで解答しなくても解答者を装ったほうがいいってことなのだろか
何もわからないことまでしゃしゃりでてこなくてもってことです
偽解答者なら私でも今からすぐにできそうだw
優位に立ちながら出てこなくてもいいのではないのかってこと
どうせ答えないのにいかにも「解答欲しけりゃぺこぺこするのは当たり前だろカス氏ね」的な態度とって
それで解答しなくても解答者を装ったほうがいいってことなのだろか
何もわからないことまでしゃしゃりでてこなくてもってことです
偽解答者なら私でも今からすぐにできそうだw
2008/04/15(火) 14:34:59
ちなみに某スレでdieがわかんないような逆引き辞書だよ
って記載した後に解説本に載ってたサンプルが動かなかったので
なぜエラーになるのかわからないって書いたら
難しいことには答えない
でも何か答えなければって強迫観念でも沸き起こるのか
解答者を装いながら勉強するのも手段なんだろうけど
なにがなんでもしゃしゃり出てくるのは過疎っているからだろね
悪循環板だ
って記載した後に解説本に載ってたサンプルが動かなかったので
なぜエラーになるのかわからないって書いたら
難しいことには答えない
でも何か答えなければって強迫観念でも沸き起こるのか
解答者を装いながら勉強するのも手段なんだろうけど
なにがなんでもしゃしゃり出てくるのは過疎っているからだろね
悪循環板だ
2008/04/15(火) 18:54:33
>>261の意味がわからないようだね。
>何もわからないことまでしゃしゃりでてこなくてもってことです
あんたが自由に質問をしていいように、他の人間もそれに対して自由にレスを付ける事ができる。
「わからないなら、しゃしゃり出てくるな」というのは単なるあんたの都合でしょ?
そうでなければ、そいつらを自分より低レベルだと見下したいのか。
そういう事をされて、このスレでクダを撒き、関係の無い人に八つ当たりをしているあんたは、
そいつらと同類という事に何故気付かない?
もう一つ。「自分」と「2ちゃんねる」のやり取りだと思っているようだけど、
レスをしているのは「個々の人間」だ。
>何もわからないことまでしゃしゃりでてこなくてもってことです
あんたが自由に質問をしていいように、他の人間もそれに対して自由にレスを付ける事ができる。
「わからないなら、しゃしゃり出てくるな」というのは単なるあんたの都合でしょ?
そうでなければ、そいつらを自分より低レベルだと見下したいのか。
そういう事をされて、このスレでクダを撒き、関係の無い人に八つ当たりをしているあんたは、
そいつらと同類という事に何故気付かない?
もう一つ。「自分」と「2ちゃんねる」のやり取りだと思っているようだけど、
レスをしているのは「個々の人間」だ。
2008/04/15(火) 18:56:42
あれだろ、渋谷までいきたいんですが教えてください。
って質問して
電車で、とかタクシーで、とか徒歩で、とか教えてくれてるのに
切符の買いかたがわかりません、とか
タクシーって何ですか?とか
徒歩って何って読むんですか?とか
馬鹿な質問してるから飽きれられてるんだろ。
って質問して
電車で、とかタクシーで、とか徒歩で、とか教えてくれてるのに
切符の買いかたがわかりません、とか
タクシーって何ですか?とか
徒歩って何って読むんですか?とか
馬鹿な質問してるから飽きれられてるんだろ。
2008/04/15(火) 19:02:52
人生相談ならよそでやってくんないかな。
sedと関係ない。
sedと関係ない。
2008/04/15(火) 19:43:39
>>263-265
http://www.wdic.org/w/WDIC/%E5%8D%8A%E5%B9%B4ROM%E3%81%A3%E3%81%A6%E3%82%8D
>今までのスレは答える前から上から目線で結局答えてくれない
まともに回答してくれた人間に随分失礼な言い草だな。
http://www.wdic.org/w/WDIC/%E5%8D%8A%E5%B9%B4ROM%E3%81%A3%E3%81%A6%E3%82%8D
>今までのスレは答える前から上から目線で結局答えてくれない
まともに回答してくれた人間に随分失礼な言い草だな。
2008/04/15(火) 21:42:30
>>263
>それで何か言語を覚えなきゃダメだなってわかったんだ
わかったけど勉強する気が無いわけ?
次から次へと言われるがままにPerl、JavaScript、サクラエディタ、awk、sedと
目先で楽できそうな物を追っかけてるから目的が達せられないんだ。
>初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
参考書として勧められてない「独習Perl」が手元にあるが丁度半分まで読んだ所で扱われているが。
努力をしないで結果を得たいなら、それなりの報酬を出して人を募集するか、
質問専用掲示板で、具体的にサンプルを出し、これこれこーゆースクリプトを
書いて下さい、と依頼するかのどちらか。
http://okwave.jp/
>それで何か言語を覚えなきゃダメだなってわかったんだ
わかったけど勉強する気が無いわけ?
次から次へと言われるがままにPerl、JavaScript、サクラエディタ、awk、sedと
目先で楽できそうな物を追っかけてるから目的が達せられないんだ。
>初心者用の解説本をヨンから来いと言われるんだけどファイル操作は初心者用ではわからないようだ
参考書として勧められてない「独習Perl」が手元にあるが丁度半分まで読んだ所で扱われているが。
努力をしないで結果を得たいなら、それなりの報酬を出して人を募集するか、
質問専用掲示板で、具体的にサンプルを出し、これこれこーゆースクリプトを
書いて下さい、と依頼するかのどちらか。
http://okwave.jp/
2008/04/15(火) 21:47:06
sedは数年でなくなる
2008/04/15(火) 23:16:01
何いきまいてんの?
パソコンソフトって結局ゲームソフトみたいなもんでしょ
その操作を知ってるからって威張るもんじゃないよね
自分で作ったソフトじゃないんだから
ゲームソフトの使い方だったら攻略本としてでるんだろうけどね
ソフトの使い方を先に知ったからって偉いと思ってんならスルーすればいいじゃん
メモ帳やペイントみたいなもんで使い方覚えたらどってことないと思う
いざやり始めた人間をいじくって遊ぶなんて恥ずかしいね
パソコンソフトって結局ゲームソフトみたいなもんでしょ
その操作を知ってるからって威張るもんじゃないよね
自分で作ったソフトじゃないんだから
ゲームソフトの使い方だったら攻略本としてでるんだろうけどね
ソフトの使い方を先に知ったからって偉いと思ってんならスルーすればいいじゃん
メモ帳やペイントみたいなもんで使い方覚えたらどってことないと思う
いざやり始めた人間をいじくって遊ぶなんて恥ずかしいね
2008/04/15(火) 23:19:39
やぁやぁ我こそはsedの達人なり〜〜
そやって表歩いてみ
誰か「キミ凄いんだ」と声でも掛けてくれたらいいねw
我こそはプログラマーなり〜〜〜〜腹いてー
そやって表歩いてみ
誰か「キミ凄いんだ」と声でも掛けてくれたらいいねw
我こそはプログラマーなり〜〜〜〜腹いてー
2008/04/15(火) 23:39:00
高校、大学と印刷関係の工場でバイトしてたんだ
当時職人と呼ばれる連中はタバコくわえながら
あごで指図しては怒鳴りあげたりやりたい放題
その頃何も知らなかったので「○○さん技術あるから仕方ないよね」みたいな空気があった
ん?
ちょっと待て!
機械の操作だけじゃん
今や家庭用のプリンターでも当時の技術を遥かに超えている
車にの運転とかもそうだよね
昔は女性が免許持って運転してると目立つしなんかあったら「女の運転わ・・」とか言われたもんだ
今の乗用車の性能で言えば当時のレーサーを余裕でぶっちぎれますw
そんな感じで機械やソフトを開発してるのは偉いと思うけど
操作で自慢されても5年後にはもっと簡単で3日でものになるソフトが出てるかもしれないよ
当時職人と呼ばれる連中はタバコくわえながら
あごで指図しては怒鳴りあげたりやりたい放題
その頃何も知らなかったので「○○さん技術あるから仕方ないよね」みたいな空気があった
ん?
ちょっと待て!
機械の操作だけじゃん
今や家庭用のプリンターでも当時の技術を遥かに超えている
車にの運転とかもそうだよね
昔は女性が免許持って運転してると目立つしなんかあったら「女の運転わ・・」とか言われたもんだ
今の乗用車の性能で言えば当時のレーサーを余裕でぶっちぎれますw
そんな感じで機械やソフトを開発してるのは偉いと思うけど
操作で自慢されても5年後にはもっと簡単で3日でものになるソフトが出てるかもしれないよ
2008/04/15(火) 23:49:36
以後放置で。
2008/04/16(水) 03:11:06
あらら、自分の非を指摘されて、それが正しいもんだから逆切れしちゃった訳ね。
まともに反論できないからって、お前の母ちゃんでべそーは無いよな(笑)
まともに反論できないからって、お前の母ちゃんでべそーは無いよな(笑)
2008/04/16(水) 04:20:47
自分で作ったソフトでも無いのにw
使い方知ってるくらいでそこまで威張るか普通?
そんなことぐらいで天狗になる奴リアルではいないよw
ゲームの上手い子供が威張り倒してるのとどう違うんだ???
パソコンソフトの使い方ぐらいでこんなに意地になる連中マジで知らんわw
教えたくなければ知らん顔してればいいのに何が何でも答えるんだね(解答以外はwwwww)
多分、実社会でもずれてんだろなー
キミはた迷惑だと思われてるかもしれないよw
廻りよく見てみw
使い方知ってるくらいでそこまで威張るか普通?
そんなことぐらいで天狗になる奴リアルではいないよw
ゲームの上手い子供が威張り倒してるのとどう違うんだ???
パソコンソフトの使い方ぐらいでこんなに意地になる連中マジで知らんわw
教えたくなければ知らん顔してればいいのに何が何でも答えるんだね(解答以外はwwwww)
多分、実社会でもずれてんだろなー
キミはた迷惑だと思われてるかもしれないよw
廻りよく見てみw
2008/04/16(水) 04:32:41
何このスレ?
2008/04/16(水) 04:58:56
「教えて君」の見本のような奴だな。
2008/04/16(水) 05:24:34
おもちゃを上手く使いこなせたから自慢してるって程度じゃないな
頭小学生並みの幼児性w
上から目線が笑えるw
こいつ 奴 プ
笑えるwww
言葉遊びできない奴は何やってもダメって典型
頭小学生並みの幼児性w
上から目線が笑えるw
こいつ 奴 プ
笑えるwww
言葉遊びできない奴は何やってもダメって典型
2008/04/16(水) 05:39:44
これほどの逸材を埋もれさせておくのはもったいないから age とく
2008/04/16(水) 05:48:41
# >>275がいいと思うんですが。
>>281
そういうことでしたら>>262に追加で、逸材ぶりがよく伝わるスレも。
http://pc11.2ch.net/test/read.cgi/php/1204488452/42-
>>281
そういうことでしたら>>262に追加で、逸材ぶりがよく伝わるスレも。
http://pc11.2ch.net/test/read.cgi/php/1204488452/42-
2008/04/16(水) 17:32:10
これは壮大な釣りなのか?
一瞬、なりすましを疑ったが、>>262,282を見ると、まさに本人だよな。
一瞬、なりすましを疑ったが、>>262,282を見ると、まさに本人だよな。
2008/05/15(木) 23:42:43
sedって文全体からある語句を置換するのは簡単だけど、
最初にマッチする語句だけ置換して後はそのまま出力しようとするとちょっと複雑になってしまうよね。
スクリプトの先頭に戻らない様なループを作らないといけない。
最初にマッチする語句だけ置換して後はそのまま出力しようとするとちょっと複雑になってしまうよね。
スクリプトの先頭に戻らない様なループを作らないといけない。
2008/05/16(金) 00:20:54
2008/05/16(金) 11:39:13
% ( echo hogehoge; echo hogehoge ) | sed '0,/hoge/s/hoge/fuga/'
fugahoge
hogehoge
GNU sed に限るようだが。
fugahoge
hogehoge
GNU sed に限るようだが。
287284
2008/05/16(金) 21:22:18 >>286
レスサンクスです。ただ最初の0を1でやった場合はうまくいきませんでした。
s/hoge/fuga/
:loop
p
N
s/.*\n//
b loop
漏れの頭ではこんなのしか思い付きませんでした。
もっとスマートな方法があったら教えてください。
レスサンクスです。ただ最初の0を1でやった場合はうまくいきませんでした。
s/hoge/fuga/
:loop
p
N
s/.*\n//
b loop
漏れの頭ではこんなのしか思い付きませんでした。
もっとスマートな方法があったら教えてください。
2008/05/16(金) 21:36:55
2008/06/04(水) 19:06:03
/me ?
290名無しさん@お腹いっぱい。
2008/07/07(月) 08:34:28 n文字目のxのみyに置換というのはどうすればいいですか
2008/07/07(月) 08:36:46
n文字目のxとは、
行頭から(n-1)個の文字のあとに出現するx のことか?
行頭からn回目に出現するx のことか?
行頭から(n-1)個の文字のあとに出現するx のことか?
行頭からn回目に出現するx のことか?
2008/07/07(月) 09:42:38
>>291
参考までに両方ともお願い
参考までに両方ともお願い
293名無しさん@お腹いっぱい。
2008/07/07(月) 12:09:14 前者です
2008/07/07(月) 13:30:25
>>291
後者ですが、念のため両者の場合について教えてください
後者ですが、念のため両者の場合について教えてください
2008/07/07(月) 21:50:58
行頭から4文字目のxをyに
echo xxxxxxxxxx | sed 's/^¥(...¥)x/¥1y/'
行頭から4個目のxをyに
echo x-x-x-x-x | sed 's/¥([^x]*x[^x]*x[^x]*x[^x]*¥)x/¥1y/'
とかとか?
4を変数にするのは漏れには粍
echo xxxxxxxxxx | sed 's/^¥(...¥)x/¥1y/'
行頭から4個目のxをyに
echo x-x-x-x-x | sed 's/¥([^x]*x[^x]*x[^x]*x[^x]*¥)x/¥1y/'
とかとか?
4を変数にするのは漏れには粍
2008/07/07(月) 23:32:28
()ってのは条件になるん?
297290 293
2008/07/08(火) 10:30:38 ありがとうございます
確かに.×4みたいに表現できたらかっこいいですが
これで文句なしです!
確かに.×4みたいに表現できたらかっこいいですが
これで文句なしです!
2008/07/08(火) 11:11:36
2008/07/08(火) 11:49:57
>>298
Solarisのsedじゃ動かんな。
Solarisのsedじゃ動かんな。
2008/08/29(金) 17:04:29
01101,"0600031","ホッカイドウ","サッポロシチュウオウク","キタ1ジョウヒガシ","北海道","札幌市中央区","北一条東",0
↓
01101,"0600031","ホッカイドウ","サッポロシチュウオウク","キタ1ジョウヒガシ","北海道","札幌市中央区","北一条東",0
この第5フィールドの半角英数だけ(2個有る場合もあり)全角にしたいのですが
どのようにsedを作ればいいでしょうか?
↓
01101,"0600031","ホッカイドウ","サッポロシチュウオウク","キタ1ジョウヒガシ","北海道","札幌市中央区","北一条東",0
この第5フィールドの半角英数だけ(2個有る場合もあり)全角にしたいのですが
どのようにsedを作ればいいでしょうか?
2008/08/29(金) 17:07:35
>どのようにsedを作れば
釣りポイントはここですか?
釣りポイントはここですか?
2008/08/29(金) 21:15:26
その形式は、郵便屋の郵便番号データだろ。
エクセルか何かの一覧表をcsvに落としただけの代物だから
そのままでは役に立たないよ。
そのままDBに格納し、専用プログラムで変換かけて正規化してる。
エクセルか何かの一覧表をcsvに落としただけの代物だから
そのままでは役に立たないよ。
そのままDBに格納し、専用プログラムで変換かけて正規化してる。
2008/10/08(水) 23:13:50
aaa.hoge
bbb.hage
ccc.foge
とかいう文字列があって、*.hoge以外にマッチする正規表現って出来るのでしょうか?
bbb.hage
ccc.foge
とかいう文字列があって、*.hoge以外にマッチする正規表現って出来るのでしょうか?
2008/10/09(木) 00:18:38
スレ違い。正規表現スレに池
2008/10/09(木) 21:57:14
>>303
その文を素直に読むと、当該文字列にだけはマッチしない
正規表現と読めるが、書き込み子の心情を忖度すると、
sed 's/[a-c]{3}\.hoge/==matched==/' って事かな?
まあ、[a-c]* でも、(aaa|bbb|ccc) でも、[[:alpha:]]* でも、
マッチする表現は無数に有るけど、(・・に、だけマッチする)
を、求めているなら、そもそも*.hoge って見当外れだし、
要するに、何が知りたいのか良く分からん。
その文を素直に読むと、当該文字列にだけはマッチしない
正規表現と読めるが、書き込み子の心情を忖度すると、
sed 's/[a-c]{3}\.hoge/==matched==/' って事かな?
まあ、[a-c]* でも、(aaa|bbb|ccc) でも、[[:alpha:]]* でも、
マッチする表現は無数に有るけど、(・・に、だけマッチする)
を、求めているなら、そもそも*.hoge って見当外れだし、
要するに、何が知りたいのか良く分からん。
2008/10/10(金) 17:29:18
307名無しさん@お腹いっぱい。
2008/10/27(月) 23:08:07 ファイル内の、スペース+改行をスペースのみに置換したいのですが、
どのように記述すればよいのでしょうか。
データ数が数十万行あるため、ファイルを全部読み込んでから
置換する方法では、容量がオーバーしてしまいました。
どのように記述すればよいのでしょうか。
データ数が数十万行あるため、ファイルを全部読み込んでから
置換する方法では、容量がオーバーしてしまいました。
2008/10/27(月) 23:26:18
>>307
Perl か何かで書いちゃった方が早いんじゃね?
Perl か何かで書いちゃった方が早いんじゃね?
309名無しさん@お腹いっぱい。
2008/10/27(月) 23:29:292008/10/28(火) 00:02:57
環境によって違うと思うけど普通の書き方じゃダメなのか?
s/ \n/ /g
s/ \n/ /g
311名無しさん@お腹いっぱい。
2008/10/28(火) 00:07:58 >>310
自分の環境では、\nが認識されませんでした。
自分の環境では、\nが認識されませんでした。
2008/10/28(火) 02:53:50
313312
2008/10/28(火) 02:56:53 すまん。勘違いした。
sed はPerlと違って、入力したときに改行を取り除いてからパターンスペースに送るから、
そこで改行探しても見つかりっこない。
んで、出力時に自動的に改行は付くし、これを抑制する手段はない。
せめて awk使っとけ。Perlなくてもawkはあるだろ。
sed はPerlと違って、入力したときに改行を取り除いてからパターンスペースに送るから、
そこで改行探しても見つかりっこない。
んで、出力時に自動的に改行は付くし、これを抑制する手段はない。
せめて awk使っとけ。Perlなくてもawkはあるだろ。
314312
2008/10/28(火) 02:58:41 すまん勘違いしてた。
sedはPerlと違って入力時に改行を取り除くから、置換時に改行探したって見つかりっこない。
Nとかで次の入力を読んでくれば間に挟まるけど。
sedはPerlと違って入力時に改行を取り除くから、置換時に改行探したって見つかりっこない。
Nとかで次の入力を読んでくれば間に挟まるけど。
2008/10/28(火) 03:19:55
おまえらマルチに親切だな
316名無しさん@お腹いっぱい。
2008/10/28(火) 07:09:08 ありがとうございました。
sedでは難しそうですね。別の方法を探してみます。
sedでは難しそうですね。別の方法を探してみます。
2008/10/28(火) 07:21:00
微妙に変えてあるとこがうまいな。
2008/10/28(火) 22:44:37
tr -d '\n'
2008/10/28(火) 22:47:24
2008/10/28(火) 22:54:10
2009/02/16(月) 16:23:57
sedの公式ホームページってないのでしょうか
awkは一応gawkがあって一応開発も続いているようですが
sedはどのような状態なのでしょうか?
いつまでたっても最短マッチを搭載しない理由もお教えねがいます。
awkは一応gawkがあって一応開発も続いているようですが
sedはどのような状態なのでしょうか?
いつまでたっても最短マッチを搭載しない理由もお教えねがいます。
2009/02/16(月) 23:57:10
そういう機能を追加すると、既存のスクリプトが動作しなくなるから。
ポータビリティを失ってまで実装する必要がない。(それこそ、perlでもawkでも使えばいい)
ポータビリティを失ってまで実装する必要がない。(それこそ、perlでもawkでも使えばいい)
2009/02/17(火) 09:03:12
なるほど、参考になりました。
もし開発に参加できるなら参加したいと思っていたのですが
そのような理由ならそういったときはperlやawkに頼る事にします。
もし開発に参加できるなら参加したいと思っていたのですが
そのような理由ならそういったときはperlやawkに頼る事にします。
2009/02/18(水) 09:33:00
>>322
sedに正規表現perl互換モードを搭載すればいいだけなのにね
sedに正規表現perl互換モードを搭載すればいいだけなのにね
2009/02/19(木) 18:21:24
GNU sedの-r みたいなので、perlモードがあればいいね。
2009/02/19(木) 19:39:12
>>321
gnu sed 拡張している人たちがいるからそのあたりに乗ってみれば?
gnu sed 拡張している人たちがいるからそのあたりに乗ってみれば?
2009/02/19(木) 20:18:08
onigsedじゃダメなのか?
つーか、perl -pe でいいじゃん。
つーか、perl -pe でいいじゃん。
2009/02/24(火) 17:21:46
2009/02/27(金) 16:21:29
>>327
今度はsed互換ではないという
今度はsed互換ではないという
330名無しさん@お腹いっぱい。
2009/06/29(月) 20:49:52 質問させてください。
sedでホワイトスペースを解除または増やす方法ってあるのでしょうか?
sedでホワイトスペースを解除または増やす方法ってあるのでしょうか?
331名無しさん@お腹いっぱい。
2009/06/29(月) 20:52:21 間違い。ホールドスペースです。
2009/06/29(月) 21:16:24
以下ホワイトベース禁止
2009/06/29(月) 22:40:10
白兵戦になるぞ!
334名無しさん@お腹いっぱい。
2009/07/03(金) 03:11:56 sedで、
/pattern/r file
ってするとマッチした行の次にfileの内容が出力されますが、
その行の前に出力する方法はないでしょうか?
ちなみにマッチする行は1個しかありません。
/pattern/r file
ってするとマッチした行の次にfileの内容が出力されますが、
その行の前に出力する方法はないでしょうか?
ちなみにマッチする行は1個しかありません。
2009/07/03(金) 23:31:09
sed -n -e '/pattern/r file' -e p
2009/07/03(金) 23:49:16
ごめん、ダメだった。こっちで。
sed -n -e 'x;p;g' -e '/pattern/r file'
1行目の空行は無視して
sed -n -e 'x;p;g' -e '/pattern/r file'
1行目の空行は無視して
2009/07/03(金) 23:53:59
1行めの空白はもう1段 | sed 1d で消せるけど……
入力の最後の1行出てなくない?
入力の最後の1行出てなくない?
338336
2009/07/04(土) 00:17:53 出てなかった。
sed -n -e 'x;p;g' -e '/pattern/r file' -e '$p'
という感じで最後の行を出力することは出来るけど
patternが最後の行の場合だけ、fileの内容が次行に出ちゃう。
自分はギブアップ
sed -n -e 'x;p;g' -e '/pattern/r file' -e '$p'
という感じで最後の行を出力することは出来るけど
patternが最後の行の場合だけ、fileの内容が次行に出ちゃう。
自分はギブアップ
2009/07/04(土) 12:34:06
いろいろありがとうございます。
sed 1個では難しいようですね。
patternより前とpattern以後に別けて、
間にfileをcatするしかないのかもしれません。
sed 1個では難しいようですね。
patternより前とpattern以後に別けて、
間にfileをcatするしかないのかもしれません。
2009/07/04(土) 18:04:47
sed 2個ならなんとか
sed -e '$aEND' | sed -e '
$d
/pattern/{
r file
N
}
${
P
d
}'
sed -e '$aEND' | sed -e '
$d
/pattern/{
r file
N
}
${
P
d
}'
2009/09/24(木) 17:28:09
>>295 の例に似てますが、
バイナリファイル(1行めの)4バイトめを ASCII 文字 0x02 -> 0x03 に
変更するにはどうすればいいでしょう?
# sed -e '1s/^\(...\)\x02/\1\x03/' in > out
ではだめでした。
試した環境は FreeBSD 7.2 です。
バイナリファイル(1行めの)4バイトめを ASCII 文字 0x02 -> 0x03 に
変更するにはどうすればいいでしょう?
# sed -e '1s/^\(...\)\x02/\1\x03/' in > out
ではだめでした。
試した環境は FreeBSD 7.2 です。
2009/09/24(木) 18:02:08
>>341
(dd bs=3 count=1; dd bs=1 count=1 of=/dev/null; printf '¥003'; cat) < in > out
(dd bs=3 count=1; dd bs=1 count=1 of=/dev/null; printf '¥003'; cat) < in > out
2009/09/25(金) 10:26:24
2009/09/25(金) 10:46:05
345341
2009/09/25(金) 12:31:36 \x02 などは GNU sed の拡張仕様でした。
# pkg_add -r gsed
# rehash
# gsed -e '1s/^\(...\)\x02/\1\x03/' in > out
でできました。
# pkg_add -r gsed
# rehash
# gsed -e '1s/^\(...\)\x02/\1\x03/' in > out
でできました。
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つずつやってみているところです。
2012/08/17(金) 18:37:54.56
448名無しさん@お腹いっぱい。
2012/08/17(金) 18:41:47.66 >>446
s/[[<(]\([^]<>()][^]<>()]*\)[]>)]/★\1☆/g
s/[[<(]\([^]<>()][^]<>()]*\)[]>)]/★\1☆/g
2012/08/18(土) 03:20:55.76
>>447-448
ああ、すみません。言葉が足りませんでした。読んだ上でわざと変えてみたのです。
ああ、すみません。言葉が足りませんでした。読んだ上でわざと変えてみたのです。
2012/08/19(日) 00:04:02.62
え?
2012/08/20(月) 16:08:01.31
ごめんなさい。>>446は[]の中の[]に全部\を付けたつもりでした(このミスが大元ですね)
エスケープすればどの位置にあっても文字とするというsedを使っていたのと、
最長一致の正規表現も使っていたので混乱してしまいました。
「直後」を何度も言われていたのに、「直後『だけ』」に思いが至りませんでした。
エスケープすればどの位置にあっても文字とするというsedを使っていたのと、
最長一致の正規表現も使っていたので混乱してしまいました。
「直後」を何度も言われていたのに、「直後『だけ』」に思いが至りませんでした。
2012/10/25(木) 06:00:58.34
gsed で、置換コマンドの s を間違えて a と入力したスクリプトを実行したら、
一行ごとにその行が挿入されていて笑ってしまった。
a コマンドなんて知らなかったわ。
一行ごとにその行が挿入されていて笑ってしまった。
a コマンドなんて知らなかったわ。
2012/10/25(木) 06:04:10.00
笑えんなぁ。
2012/10/25(木) 06:09:46.09
笑って許して♪
2012/10/25(木) 06:45:25.34
gsed って置換するときにタグの数が合ってなくてもエラーが出ないのね。
456名無しさん@お腹いっぱい。
2012/10/25(木) 23:53:29.32 aなんて、edの基本じゃん!
2012/10/27(土) 12:38:13.67
マニュアルでも最初のほうに来ちゃうしね
458名無しさん@お腹いっぱい。
2012/11/05(月) 10:24:08.04 質問があります
テキストファイルaaaの中身
<hoge>
abc
</hoge>
<hoge>
def
</hoge>
これを
<hoge>
def
</hoge>
のようにabcのタグだけ削除したい
sed -i "/^<hoge>\n abc\n<\/hoge>/d" aaa
これでは削除できませんでした。
改行を含む文字列を削除する場合どうしたらいいでしょうか?
テキストファイルaaaの中身
<hoge>
abc
</hoge>
<hoge>
def
</hoge>
これを
<hoge>
def
</hoge>
のようにabcのタグだけ削除したい
sed -i "/^<hoge>\n abc\n<\/hoge>/d" aaa
これでは削除できませんでした。
改行を含む文字列を削除する場合どうしたらいいでしょうか?
2012/11/05(月) 10:26:48.87
sedでやるのは無理があるんじゃないか。
2012/11/05(月) 12:39:56.92
>>459
いや、なせば成る
いや、なせば成る
2012/11/05(月) 13:24:25.09
cat aaa | sed -e ':loop; N; N; !b loop; s/^<hoge>\n abc\n<\/hoge>//'
これで良いのかな?
これで良いのかな?
462名無しさん@お腹いっぱい。
2012/11/05(月) 14:31:53.412012/11/05(月) 14:34:20.66
Perl でも Ruby でも何でもいいよ。
464名無しさん@お腹いっぱい。
2012/11/05(月) 14:56:37.972012/11/05(月) 15:19:40.83
grep -n abc して、出てきた数字でsedスクリプト作っちゃうとか。
2012/11/05(月) 15:53:27.99
2012/11/05(月) 21:31:52.30
>>482
sed -n -f hoge.sed <aaa
hoge.sed:
/<hoge>/b hoge
p
b end
:hoge
N
N
/<hoge>\n abc\n<\/hoge>/!p
:end
sed -n -f hoge.sed <aaa
hoge.sed:
/<hoge>/b hoge
p
b end
:hoge
N
N
/<hoge>\n abc\n<\/hoge>/!p
:end
2012/11/06(火) 04:00:03.51
>>458
aaaがXMLならXMLパーサ(を使える言語)を使った方がいいと思う
/<hoge>/!b
:loop
$b last
/<\/hoge>/!{
N
b loop
}
:last
s/<hoge>[ \n\t]*abc[ \n\t]*\(<\/hoge>\)*//g
aaaがXMLならXMLパーサ(を使える言語)を使った方がいいと思う
/<hoge>/!b
:loop
$b last
/<\/hoge>/!{
N
b loop
}
:last
s/<hoge>[ \n\t]*abc[ \n\t]*\(<\/hoge>\)*//g
2012/11/20(火) 09:09:15.11
すみません。教えて下さい。
テキストの最終行のあとに空白行を1行入れる、というのはどう書くのでしょうか。
iコマンドでは最終行の前に空白行ができてしまいます。
テキストの最終行のあとに空白行を1行入れる、というのはどう書くのでしょうか。
iコマンドでは最終行の前に空白行ができてしまいます。
2012/11/20(火) 09:23:56.98
sed -e '$a\
hoge
'
hoge
'
2012/11/20(火) 09:30:53.76
ありがとう。助かりました。
2012/11/22(木) 01:22:12.85
最終行の後なら
$ cat >> tmp
$
で十分であるようにも思うけどなぁ
$ cat >> tmp
$
で十分であるようにも思うけどなぁ
2012/11/22(木) 03:29:10.92
ああ、なるほど。いつか思い出して使うこともあるでしょう。ありがとう。
2012/11/22(木) 07:19:23.18
>>472
1行追加ならechoの方が楽でね?
1行追加ならechoの方が楽でね?
2012/11/22(木) 11:59:50.11
そうなんだけど、sedファイルの中に書き込みたかったんですよ。でも、ありがと
2013/01/04(金) 10:51:16.73
optimized sed
http://www.commandlinefu.com/commands/view/11707/optimized-sed
巨大ファイル対象の場合は
sed '/foo/ s/foo/foobar/g' <filename>
が
sed 's/foo/foobar/g' <filename>
よりも効率がよいとの事ですが、どういう原理でそうなるんでしょうか
http://www.commandlinefu.com/commands/view/11707/optimized-sed
巨大ファイル対象の場合は
sed '/foo/ s/foo/foobar/g' <filename>
が
sed 's/foo/foobar/g' <filename>
よりも効率がよいとの事ですが、どういう原理でそうなるんでしょうか
2013/01/04(金) 12:52:49.06
"foo"の在る行だけを対象にするから?
どのみち見つけに行くんだから同じじゃん?と想ったり想わなかったり
どのみち見つけに行くんだから同じじゃん?と想ったり想わなかったり
2013/01/04(金) 12:55:13.46
2013/01/05(土) 01:12:15.15
つまり、都市伝説って事か
どのsedかによっても違うんだろう
どのsedかによっても違うんだろう
2013/01/05(土) 09:49:03.44
対象になる行の割合にもよるんじゃないの?
481478
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
$ 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
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'
ってどう解釈すれば良いんですか?
diff is /usr/bin/diff
> type diff | sed 's,[()],,g;s,^[^/][^/]*,,;q'
/usr/bin/diff
s,[()],,g;s,^[^/][^/]*,,;q'
ってどう解釈すれば良いんですか?
2013/04/08(月) 05:56:57.86
人それぞれ
で良いんじゃない
で良いんじゃない
2013/05/21(火) 06:44:35.71
Macでgsedを使っています。やりたいこと
★のある行と☆のある行の間にある行のうち、ひらかなを含む行の行頭に@を付ける。
(ひらかなが1文字でも入っていれば良い)
/★/,/☆/{
/[あ-ん]/s/^/@/
}
無視されてしまうんです。助けてください。
★のある行と☆のある行の間にある行のうち、ひらかなを含む行の行頭に@を付ける。
(ひらかなが1文字でも入っていれば良い)
/★/,/☆/{
/[あ-ん]/s/^/@/
}
無視されてしまうんです。助けてください。
485484
2013/05/21(火) 08:34:08.57 [あ-ん]がいけなかったみたいです。[あいうえお(中略)ん、。]でできました。
2013/05/21(火) 13:23:01.78
あ-ん♪
2013/05/21(火) 16:08:58.36
2013/05/22(水) 03:36:42.23
ごめんワカンナイ
2013/05/22(水) 16:53:09.99
ssedって次期GNU sedのこと。
GNUのページでもこの拡張には依存するなって書いてる。
ただ、macでBSD系のsedじゃなくGNU sed使ってるんなら
port依存って意味ではあんまり変わんないんじゃない?
GNUのページでもこの拡張には依存するなって書いてる。
ただ、macでBSD系のsedじゃなくGNU sed使ってるんなら
port依存って意味ではあんまり変わんないんじゃない?
2014/03/04(火) 03:45:38.92
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
とかならちゃんと動きます
sedで、"を入れたくて下記のようにしたのですが、うまくいきません。どうしてでしょうか
sed -e "s/^/ \"/" hoge.txt > hoge2.txt
エスケープの\がうまく利かず、
sed: >を読み込めません
というわけわからんエラーメッセージが出てきます
ちなみに、
sed -e "s/^/ \\/" hoge.txt > hoge2.txt
とかならちゃんと動きます
2014/06/28(土) 14:33:09.63
>>491
UNIX板で答えない方が良いのかもしれませんが、適当なスレが無さそうなので
windows のコマンドプロンプトで実行しているとして答えます。
cmd.exe の仕様が原因と思われる
sed -e "s/^/ "^""/" hoge.txt > hoge2.txt
UNIX板で答えない方が良いのかもしれませんが、適当なスレが無さそうなので
windows のコマンドプロンプトで実行しているとして答えます。
cmd.exe の仕様が原因と思われる
sed -e "s/^/ "^""/" hoge.txt > hoge2.txt
2014/06/28(土) 14:56:57.91
sedを使用する際の注意事項があります。
コンピュータのCPUが何ビットであるか調ベておく事が大切です。
32ビットCPUを搭載したコンピュータには、
32ビット用のsedをインストールすること。
64ビットCPUを搭載したコンピュータには、
64ビット用のsedをインストールすること。
これを間違えれば正常にsedが動作しません。
コンピュータのCPUが何ビットであるか調ベておく事が大切です。
32ビットCPUを搭載したコンピュータには、
32ビット用のsedをインストールすること。
64ビットCPUを搭載したコンピュータには、
64ビット用のsedをインストールすること。
これを間違えれば正常にsedが動作しません。
2014/08/20(水) 00:07:25.20
sedの使い方がわからず、試行錯誤しているのですが、うまくいきません。
行の先頭に特定の文字列(たとえば"abc")があったらその行を丸ごと"xxxxxxxxxxx"に置換するにはどうすれば良いでしょうか。
例:
abc123456
が
xxxxxxxxxxx
に変換さえるイメージです。
行の先頭に特定の文字列(たとえば"abc")があったらその行を丸ごと"xxxxxxxxxxx"に置換するにはどうすれば良いでしょうか。
例:
abc123456
が
xxxxxxxxxxx
に変換さえるイメージです。
2014/08/20(水) 01:37:59.80
496名無しさん@お腹いっぱい。
2014/08/20(水) 01:39:49.69 パイプで使うバージョンを書く
|sed 's/^abc.*/xxxxxxxxxxx/'
|sed 's/^abc.*/xxxxxxxxxxx/'
2014/08/20(水) 02:29:51.22
sed '/^abc/cxxxxxxxxxxx'
2014/08/20(水) 03:06:02.58
abc -> xxx
abc123 -> xxxxxx
abc12345 -> xxxxxxxx
をsedでやるならどう書くんだろ
abc123 -> xxxxxx
abc12345 -> xxxxxxxx
をsedでやるならどう書くんだろ
2014/08/20(水) 06:22:02.63
>>498
s/./x/g
s/./x/g
2014/08/20(水) 10:13:13.33
2014/09/17(水) 02:37:37.33
パスワードのゼロ埋め(ゼロパディング)と見た。
502名無しさん@お腹いっぱい。
2014/10/21(火) 08:56:25.00 バックスラッシュって読みやすいか?日本語だと使い道無いし。
プログラミングで正規表現書いてると、
s/\dhoge\sfuga\s/hoge/
↑似たような記号ばっかりで読みづらいw
s/¥dhoge¥sfuga¥s/hoge/
↑こっちのほうが読みやすい
プログラミングで正規表現書いてると、
s/\dhoge\sfuga\s/hoge/
↑似たような記号ばっかりで読みづらいw
s/¥dhoge¥sfuga¥s/hoge/
↑こっちのほうが読みやすい
2014/10/21(火) 10:00:39.43
使い道ある記号だったらエスケープシーケンスにも
円記号ねじ込むにも適さなかっただろうよ
円記号ねじ込むにも適さなかっただろうよ
2014/10/21(火) 11:48:25.80
最近可愛く見えてきた。意味を持たない組み合わせに腹を立てたり。
2014/10/21(火) 13:00:32.47
スラッシュとバックスラッシュが紛らわしいんならスラッシュ以外の
文字を区切りに使えばいいんでないの?
文字を区切りに使えばいいんでないの?
2014/10/21(火) 13:05:36.87
区切りを変更できるのはsコマンドとかの時だけ
507名無しさん@お腹いっぱい。
2014/11/06(木) 07:19:05.882014/11/06(木) 08:27:36.11
>>506 にあるようにできない。
2014/11/06(木) 08:42:54.81
できる実装もあるかもしれない
2014/11/06(木) 09:21:40.14
コピペ改変にかまうな
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 を取得したいのですが、
どう書けば良いのでしょうか?
11 AAA [BBB] CCC/DDD.txt EEE FFF-01
だった場合に、ここから[]内の文字(BBB) を抜き出すために、
sed -e 's/\[//g' -e 's/\]//g' | awk '{ print $3 }'
というスクリプトで BBB を取得しています。
このスクリプトを変更して、DDD を取得したいのですが、
どう書けば良いのでしょうか?
2014/12/23(火) 19:23:47.26
s,.*/,,; s,\.txt.*,,
2014/12/24(水) 15:41:51.14
ありがとう
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 には任意の文字を指定できる。
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 には任意の文字を指定できる。
2014/12/28(日) 17:04:08.20
おおお、グレート義太夫
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://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が何故必要なのか?
動作の流れを教えて頂けないでしょうか?
517516
2016/02/21(日) 00:09:27.85 age
2016/02/21(日) 01:34:16.62
タダで教えろって?
2016/02/21(日) 10:27:51.16
dがあるのは段落の区切りまで何も出力させないため
ファイル末尾も段落の区切りだから$!が要る
ファイル末尾に必ず空行があるなら$!は要らない
dでそのサイクルが終了することは知ってますね?
ファイル末尾も段落の区切りだから$!が要る
ファイル末尾に必ず空行があるなら$!は要らない
dでそのサイクルが終了することは知ってますね?
2016/02/21(日) 10:54:53.96
10日も呆けーと待ってたことに驚き
2016/02/21(日) 13:02:47.07
でも教えてもらえたじゃないかw
2016/02/21(日) 14:02:51.01
自分で試せば小一時間で気付くのに、と思う
523516
2016/02/21(日) 16:55:28.79 >>519
有り難うございます。助かりました。
!dをpの様に認識してしまっていて次のサイクルに移行させる
イメージがなく、$!dを最終行を表示させるとしか思ってなくて
色々試してもどうにも腑に落ちないもので質問させて頂きました。
有り難うございます。助かりました。
!dをpの様に認識してしまっていて次のサイクルに移行させる
イメージがなく、$!dを最終行を表示させるとしか思ってなくて
色々試してもどうにも腑に落ちないもので質問させて頂きました。
524名無しさん@お腹いっぱい。
2016/04/28(木) 22:19:31.31 sedで桁そろえってどうしたらいいですかる
具体的にはls -l で出てきた結果のうち、ファイル名を最初に左揃え、ファイルサイズを右揃えで出力したいのですが、
sedコマンドだけで可能ですか?
具体的にはls -l で出てきた結果のうち、ファイル名を最初に左揃え、ファイルサイズを右揃えで出力したいのですが、
sedコマンドだけで可能ですか?
2016/04/29(金) 06:51:34.85
そういうのは awk で。
526名無しさん@お腹いっぱい。
2016/04/29(金) 07:15:23.81 どうしてもsedだけでやたいんです!
お願いします!
お願いします!
2016/04/29(金) 07:58:13.44
UNIX哲学に戻るんだ。
1つのことをうまくやる、ものを組み合わせればいいんだから、まずはawkでやってみる。
1つのことをうまくやる、ものを組み合わせればいいんだから、まずはawkでやってみる。
2016/04/29(金) 08:26:18.75
awkでもいいが、シェル内部コマンドだけでもできるぞ。
ls -l | while read m l u g s t1 t2 t3 f
do
printf
ls -l | while read m l u g s t1 t2 t3 f
do
printf
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
ls -l | while read m l u g s t1 t2 t3 f
do
printf ”%-20s %8d %s\n” ”$f” ”$s”
done
2016/04/29(金) 09:51:04.97
FreeBSD$ stat -f %-20N%8z *
Linux$ stat -c %-20n%8s *
Linux$ stat -c %-20n%8s *
2016/04/29(金) 10:02:30.45
sedでの右揃えは、一旦中身のみを切り出してから左側に余分なスペースを加えてから
右から文字数固定で切り取る。
左揃えはその逆。
右から文字数固定で切り取る。
左揃えはその逆。
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 オプションは無い)
入力ファイルを書き換えるには?
・-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 オプションは無い)
2017/03/17(金) 14:26:32.28
データハンドリングとしては、
入力ファイルをコピーして更新をかける
更新処理が終わったら、入力ファイルを削除して更新ファイルをりネームして入力ファイルとする
みたいな方法で必要十分。
なんでもかんでもツールで処理するのではなく、OSが得意な機能はOSのものを使う。
クラッシュがいつ起こってもデータが確保できるのは、そういう、むしろドンくさい方法。
お遊びならいざしらず、仕事では安全確実性が少しでも高い方を選ぶのがプロ。
無論、履歴から復元なんてのも、データによっては必要だが、
処理が複雑になれば、一般的にトラブルも増える。
どこまで何をやるかは、ひとえにそのデータの重要性にかかっている。
バックアップから戻してもたいした事がないなら、何やってもいいだろう。
入力ファイルをコピーして更新をかける
更新処理が終わったら、入力ファイルを削除して更新ファイルをりネームして入力ファイルとする
みたいな方法で必要十分。
なんでもかんでもツールで処理するのではなく、OSが得意な機能はOSのものを使う。
クラッシュがいつ起こってもデータが確保できるのは、そういう、むしろドンくさい方法。
お遊びならいざしらず、仕事では安全確実性が少しでも高い方を選ぶのがプロ。
無論、履歴から復元なんてのも、データによっては必要だが、
処理が複雑になれば、一般的にトラブルも増える。
どこまで何をやるかは、ひとえにそのデータの重要性にかかっている。
バックアップから戻してもたいした事がないなら、何やってもいいだろう。
2017/10/22(日) 14:32:07.16
2017/10/22(日) 15:59:51.51
昔も今もTeXでやってくれる印刷屋に頼めばいいじゃん。
2017/12/08(金) 20:25:27.67
今も昔も餅屋のふりした餅屋はたくさんあるからな〜。餅の見る目のない会社だったってことで。
537名無しさん@お腹いっぱい。
2017/12/29(金) 10:21:45.77 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
8DL33JQ0HX
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
8DL33JQ0HX
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
ここから来ました。
sedでiフラグとdフラグを両方立てることってできないのでしょうか。
$ cat file
aaa
AAA
$ cat file | sed -e '/aaa/id'
AAA
d
aaa
2018/01/18(木) 12:57:27.52
頑張って /[Aa]\{3\}/d と書く
今時の正規表現修飾子とか使えるsedがあるなら俺も知りたい
今時の正規表現修飾子とか使えるsedがあるなら俺も知りたい
540538
2018/01/18(木) 13:11:30.41 >>539
ありがとうございます。とりあえずその路線で行きます。
素人目にはiフラグとdフラグを同時に使えないというのは極めて不自然というか
非対称な気もしますが……
二つの役割は直交関係にあって,別に依存・背反はないと思うんですよねぇ。
ありがとうございます。とりあえずその路線で行きます。
素人目にはiフラグとdフラグを同時に使えないというのは極めて不自然というか
非対称な気もしますが……
二つの役割は直交関係にあって,別に依存・背反はないと思うんですよねぇ。
2018/01/18(木) 16:19:03.70
GNU sedなら I 大文字が使えるじゃあないか
542538
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が当該箇所に挿入された形になったんですね。
馬鹿だなぁ俺
Bbb
おおおおおお!ありがとうございます。Iフラグは知りませんでした!
しかしこれ GNU の独自拡張なんですよねぇ……欲を言えばPOSIX標準に従いたかったんです……
すいません。とりあえず>>539の一文字づつ手動で置き換えるというやりかたで通します。
そして今気付いたんですが iという文字はフラグだけでなくて「行挿入」というコマンドとしての
解釈もあるんですね。だから「id」でdが当該箇所に挿入された形になったんですね。
馬鹿だなぁ俺
2018/01/19(金) 06:11:37.28
iもdもコマンドじゃないの?
544542
2018/01/19(金) 16:10:54.99 >>543
あーその通りですわ。
逆になぜ id で大文字小文字を無視して削除ができると思ったのか疑問なくらい阿呆でした……。
精進し直します。
# 素人考えで言うと「大文字小文字を無視して検索→その行でコマンド実行」なんて頻繁に実行するだろうに
それに対応した機能が (POSIXの範囲で) 存在しないってのはちょっと頂けないですねぇ……
# 尤も上級者の方々は他の,もっと優美な方法を採ってらっしゃるのかも知れませんが。
あーその通りですわ。
逆になぜ id で大文字小文字を無視して削除ができると思ったのか疑問なくらい阿呆でした……。
精進し直します。
# 素人考えで言うと「大文字小文字を無視して検索→その行でコマンド実行」なんて頻繁に実行するだろうに
それに対応した機能が (POSIXの範囲で) 存在しないってのはちょっと頂けないですねぇ……
# 尤も上級者の方々は他の,もっと優美な方法を採ってらっしゃるのかも知れませんが。
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
...
xbcea
aaa
aaa
aaa
dkjef
...
↑このようなファイルで、
cat ./file | sed -e 's/aaa\naaa\naaa/bbb/g'
とやることで
...
xbcea
bbb
dkjef
...
このような出力が得られることを望んでいるのですが、上記のコマンドでは無理でした。> <
ご教授願いますm(_ _)m
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
汚いw
2018/02/14(水) 10:22:09.93
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
548名無しさん@お腹いっぱい。
2018/05/22(火) 03:04:16.83 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
9M87D
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
9M87D
2018/08/28(火) 06:46:05.19
sedとawkとgrepの違いって?
550名無しさん@お腹いっぱい。
2018/08/31(金) 10:07:25.21 sedはストリームエディタ
grepは文字列検索
awkはスクリプト言語
grepは文字列検索
awkはスクリプト言語
2018/12/13(木) 22:08:13.14
| sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^
この行の後ろに<pfm>から始まる行をくっつけたいんですが、
すごく難しくてどうやっても出来ないです
どうやればいいんでしょうか?
この行の後ろに<pfm>から始まる行をくっつけたいんですが、
すごく難しくてどうやっても出来ないです
どうやればいいんでしょうか?
2018/12/14(金) 00:16:49.36
イマイチやりたいことがわからず
それに頭の | と尻の ^ はなんざんす
それが行ってことざんすか
それに頭の | と尻の ^ はなんざんす
それが行ってことざんすか
2018/12/14(金) 00:49:07.99
2018/12/15(土) 09:02:56.15
| sed -n -e "/<station /h;/<prog /{N;G;s/\n//gp}" ^ <pfm>
くっついた!
くっついた!
2018/12/15(土) 19:39:46.09
あ、できたのでもういいです
2019/02/09(土) 12:27:35.91
10年以上前にファイル内容を逆順に表示するスクリプトコピペしたけど '1!G;h;$!d'
未だに内容理解できてないぜ!
未だに内容理解できてないぜ!
2019/02/09(土) 12:28:51.42
556
スクリプトというかコマンドだな
スクリプトというかコマンドだな
2019/02/09(土) 13:34:35.65
便利なの持ってんじゃん
tacでいいような気もするけど
tacでいいような気もするけど
2019/03/12(火) 05:03:42.07
短くても難読すごいから可能ならtacのたぐい、基存のコマンドで処理したい
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を教えてください
OS付属の/usr/binソースはあるけど
https://github.com/freebsd/freebsd/tree/master/usr.bin/sed
sed単体がない。
ビルド出来るBSDsedのURLを教えてください
2019/03/19(火) 13:05:15.53
そこの使えばいいんじゃないの
Makefileは適当に改変するとして
Makefileは適当に改変するとして
562名無しさん@お腹いっぱい。
2019/03/19(火) 13:55:05.582019/03/19(火) 19:46:54.93
>>562
FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。
なんの OS を使ってるのかわからいけど、
pkgsrc が対応している OS なら pkgsrc 導入して、
textproc/nbsed をインストールするのが一番楽だと思う。
http://pkgsrc.org/
FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。
なんの OS を使ってるのかわからいけど、
pkgsrc が対応している OS なら pkgsrc 導入して、
textproc/nbsed をインストールするのが一番楽だと思う。
http://pkgsrc.org/
564名無しさん@お腹いっぱい。
2019/03/20(水) 04:19:12.82565名無しさん@お腹いっぱい。
2019/03/20(水) 04:24:16.70 >>563
>FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。
これ当たってた。BSDの本家に問い合わせたら560のURLにあるsedのmakefileはOS用らしい。
自分で一からconfigureやmakefileを用意すればビルド出来るのかもね。
sedの最新版を使いたかったが時間あるときに563を試します。
>FreeBSD のソース用の Makefile は BSD make 用で GNU make では使えないよ。
これ当たってた。BSDの本家に問い合わせたら560のURLにあるsedのmakefileはOS用らしい。
自分で一からconfigureやmakefileを用意すればビルド出来るのかもね。
sedの最新版を使いたかったが時間あるときに563を試します。
2019/03/20(水) 04:45:39.59
Makefileの中見てgcc一発でも行けんだろって気がするが
って自分は前それやってみた気もするが
それくらい試せよ
って自分は前それやってみた気もするが
それくらい試せよ
567名無しさん@お腹いっぱい。
2019/03/20(水) 07:03:53.34 >>566
確か、Linux のcore utilとかだとconfigure sedみたいなかんじで、コマンドの単独コンパイルできる。
manにかかれているメアドでBSDの本家に問い合わせたら
単独コンパイル出来ないとの返事だった。OSビルド用らしい
もう消してしまったが、成功した人がいたら教えてほしい。方法がわかれば再試行する気はあります
確か、Linux のcore utilとかだとconfigure sedみたいなかんじで、コマンドの単独コンパイルできる。
manにかかれているメアドでBSDの本家に問い合わせたら
単独コンパイル出来ないとの返事だった。OSビルド用らしい
もう消してしまったが、成功した人がいたら教えてほしい。方法がわかれば再試行する気はあります
2019/03/20(水) 07:04:29.16
ごめん、もうsageるべきだった
569名無しさん@お腹いっぱい。
2019/03/26(火) 09:49:12.30 別にageでもいいよ
2019/06/24(月) 23:38:04.88
正規表現一致した行と,その一致した行と4行後のみを抽出とかってどうすればいいですか?
2019/06/25(火) 13:21:07.60
-n '/re/{p;n;n;n;n;p;}'
とか?
とか?
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);に置き換えればビルドできるじゃん
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);に置き換えればビルドできるじゃん
2019/07/02(火) 15:24:44.16
>>572
有難う。諦めていたけど早速やってみます。
有難う。諦めていたけど早速やってみます。
2019/07/02(火) 22:35:36.02
560です。572のとおりビルドできました。
インストール済のMac版sedは2004年頃なのでバージョンアップできて助かります。
これから100近くあるソースを調べます。
linux版との互換性ない記述を書いてしまいました。
gnu sedもMac上ではビルドできていませんが諦め。
インストール済のMac版sedは2004年頃なのでバージョンアップできて助かります。
これから100近くあるソースを調べます。
linux版との互換性ない記述を書いてしまいました。
gnu sedもMac上ではビルドできていませんが諦め。
2019/07/02(火) 23:46:07.78
マジかよ
gnu sedなんてそれこそ./configureしてmakeだけじゃん
--program-prefix=gくらいつけといた方がいいだろけどさ
gnu sedなんてそれこそ./configureしてmakeだけじゃん
--program-prefix=gくらいつけといた方がいいだろけどさ
2019/07/02(火) 23:47:55.81
あー、なんかつい誘導されちゃった感じ...
2019/07/03(水) 01:18:23.32
>>575
560です。エラー、コピペしていいですか?長いんですけど。。。
560です。エラー、コピペしていいですか?長いんですけど。。。
2019/07/03(水) 03:40:41.85
gnu sed もインストール出来ました。
bash_profileのパスを最小限にしたらエラーがなくなったみたい?
bash_profileのパスを最小限にしたらエラーがなくなったみたい?
2019/07/03(水) 03:41:36.40
>>577質問は取り消します。有難うございました。
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
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
2021/09/08(水) 17:50:49.92
sedのホールドスペースは、その内容を削除するにはどうすれば?
とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。
とりあえずs/.//g;xでできたけど、もっと直接的なやりかたはないんかなー、と。
2021/09/08(水) 17:54:36.56
sedスクリプトファイルでよく使われる拡張子はあります?
ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed?
ほとんどコマンドラインに-eで書ききるものでしょうが、あえてファイルにするとしたらやっぱりsed?
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')
別にこだわる必要はないけど
各種sed処理系付属のexamplesとか覗くとみんな.sedなので、あえて正書法にこだわるならやはり.sedかと
実装を隠したコマンドとして纏めたい、常に特定のオプション(-i等)で起動したい、主コードとsedの拡張チェック等を分離したいならenvを使うとよい
sedによってはオプションを重ねられたり重ねられなかったりするので
#! /usr/bin/env -S sed -f (-i -n -e 'check')
2021/12/25(土) 09:35:07.03
ところでgnu sedの付録のdc.sedってのやばいなこれ
興味深いけど誰か注釈付けてくれたりしてないのか
興味深いけど誰か注釈付けてくれたりしてないのか
585名無しさん@お腹いっぱい。
2023/02/05(日) 22:38:55.04 onigsed がダウンロードできなくて困ってます。
2023/09/30(土) 14:56:35.67
(@д@)/?.うそ~!””
587名無しさん@お腹いっぱい。
2024/03/27(水) 19:48:02.41 たどり着けない境地だ
588名無しさん@お腹いっぱい。
2024/03/27(水) 19:55:02.09 それらが引退した人も逮捕されてるの見つかって捕まって誰かに相手されないもんね
ヒスンは凄く特殊な銃を使って
ヒスンは凄く特殊な銃を使って
589名無しさん@お腹いっぱい。
2024/03/27(水) 21:38:04.20 4232
じり下げはやめて良い部屋は空いてるんだったら
胃がびっくりしておかしくなる
家庭崩壊する
それが政治とどう関係あるのが信じられなくなったから焦った
じり下げはやめて良い部屋は空いてるんだったら
胃がびっくりしておかしくなる
家庭崩壊する
それが政治とどう関係あるのが信じられなくなったから焦った
590名無しさん@お腹いっぱい。
2024/04/01(月) 17:36:13.18 awkについて語るスレ $3
https://mevius.5ch.net/test/read.cgi/tech/1600054668/
https://mevius.5ch.net/test/read.cgi/tech/1600054668/
2024/05/30(木) 11:15:41.15
pcre使えるsedある?
2024/05/30(木) 19:55:34.18
593名無しさん@お腹いっぱい。
2024/08/13(火) 08:10:10.49 sed '/削除したい行/d'
で「削除したい行」は削除されるが、「削除したい行」の1行前から2行後迄削除したい場合は、どう書くの?
で「削除したい行」は削除されるが、「削除したい行」の1行前から2行後迄削除したい場合は、どう書くの?
2024/08/13(火) 09:58:16.91
grepだと複数行はAオプションがあるけど、sedは複数行は無理なんじゃないかな
595名無しさん@お腹いっぱい。
2024/08/13(火) 10:50:05.642024/08/13(火) 22:27:16.64
sed -n '{ /削除したい行/{ g; s/\n[^\n]*$//; h; n; n; bc }; H; s/.*//; :c }; ${ g; s/\n//; p }'
黒魔術じみたコードになっちゃった…
黒魔術じみたコードになっちゃった…
2024/08/13(火) 23:44:44.87
複数行、出来るんだ
知らなかった
知らなかった
598名無しさん@お腹いっぱい。
2024/08/14(水) 05:52:06.53 その手のためだけに,plan9のsamを使ってた.
599593
2024/08/14(水) 19:02:06.332024/08/14(水) 20:18:50.75
仕組みを学ぶのは後で、やりたいことが実現できるならいいでしょ
sudo \rm -rf /
とかを躊躇無く実行しちゃうみたいなのは危険だけど
sudo \rm -rf /
とかを躊躇無く実行しちゃうみたいなのは危険だけど
2024/08/15(木) 01:15:03.31
"削除したい行"行が連続する場合
前1行がない場合
後2行がない場合
前1行がない場合
後2行がない場合
602593
2024/08/15(木) 08:30:40.412024/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 }'
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 }'
2024/08/15(木) 18:59:31.57
sed '$!N;/削除したい行/,+2d;P;D;'
2024/08/15(木) 22:15:36.30
sed 'H;1h;$!d;x; s/^\([^\n]*\n\)\{0,1\}削除したい行\(\n[^\n]*\)\{0,2\}\n\?//m;'
606名無しさん@お腹いっぱい。
2025/04/27(日) 17:41:15.94 I sed.
レスを投稿する