- 1 名前:login:Penguin mailto:sage [2008/05/17(土) 13:44:57 ID:9hFWtCOD]
- UNIX板のスレを見ている方も多数おられるかと思いますが、
まあそれはそれとして、BASHウゼーとか言われる心配なく 平和にLINUX的スクリプト談義しましょうよ。 初めての自作スクリプト、自信ないから見てください。な初心者から トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで いろいろな人に参加して頂けると嬉しいです。 perlやらPythonやらの話が混ざっても良いんでない? Part3 : pc11.2ch.net/test/read.cgi/linux/1184077033/ Part2 : pc11.2ch.net/test/read.cgi/linux/1154578200/ Part1 : pc8.2ch.net/test/read.cgi/linux/1121994321/ >>2-5あたりに色々と。
- 136 名前:login:Penguin mailto:sage [2008/06/12(木) 21:41:49 ID:JqmZrOtu]
- >>133
awkにあるmktime, strftime関数を使うのが一番手軽かな。
- 137 名前:133 mailto:sage [2008/06/12(木) 23:39:42 ID:mOwz8//t]
- >>134-136
実現できました! 即レス助かりました。ありがとうございます。
- 138 名前:login:Penguin mailto:sage [2008/06/13(金) 08:03:49 ID:TrNV+QBw]
- >>126 は解決したのだろうか。
俺には意図が解らなかったが。
- 139 名前:126 [2008/06/13(金) 09:47:03 ID:j8pwVaea]
- >>138
心配していただきありがとうございます。まだ未解決です。 簡単にいうと aaa.txtが [100] 201 202 203 [200] 301 302 303 となっている場合に [100] 201 [100] 202 [100] 203 [200] 301 [200] 302 [200] 303 としたいんです。(スペースのところはタブ区切りを入れたいです) お願いします。
- 140 名前:login:Penguin mailto:sage [2008/06/13(金) 10:12:43 ID:+c/4qhZ/]
- #!/usr/bin/perl
my $i = ''; while (<>) { chomp; if ($_ eq '') { $i = ''; print "\n"; } elsif ($i eq '') { $i = $_; } else { print "$i\t$_\n"; } }
- 141 名前:126 [2008/06/13(金) 10:25:54 ID:j8pwVaea]
- >>140
それを今試してみたら [100] [100] 201 [100] 202 [100] 203 [100] [100] 301 [100] 302 [100] 303 みたいになっちゃいました。 せっかくコードを書いていただいたのですがちょっと 結果が違いました。すみません。
- 142 名前:login:Penguin mailto:sage [2008/06/13(金) 10:28:27 ID:5MIbjJC0]
- > 126
awk 'BEGIN {OFS = "\t";}; $0 != "" {if ($0 ~ /^\[/) section = $1; else print section, $1}' aaa.txt 多分もっと格好よくできるはずなんだけどなぁ
- 143 名前:login:Penguin mailto:sage [2008/06/13(金) 10:38:47 ID:obeusV/U]
- >>139
gawk '{if(match($0,/^\[[0-9][0-9]*\]$/))t=$0;else{if(length)$0=t "\t" $0;print;}}' aaa.txt sed -e '/^\[[0-9][0-9]*\]$/{h;d}/^..*/{x;G;s/\n/\t/;p;s/\t.*//;h;d}' aaa.txt まだ短くならないかな。
- 144 名前:login:Penguin mailto:sage [2008/06/13(金) 10:43:39 ID:+c/4qhZ/]
- >>141
203 の次の行は空行じゃないの?
- 145 名前:login:Penguin mailto:sage [2008/06/13(金) 10:45:41 ID:+c/4qhZ/]
- >>126
> #変数eeeにxxx.txtの2行目から15行目を代入します > #xxx.txtの行の先頭が20から始まる場合 最初と言ってることぜんぜん違うじゃねーか。
- 146 名前:126 [2008/06/13(金) 11:04:27 ID:j8pwVaea]
- >>142
おおおっ。すごいです。ありがとうございます。 で、あまりにも簡単に説明しすぎたせいで少し動作が違いました。 実際にはaaa.txtは複数の列でできています。 [100] 201 100 200 202 100 200 203 100 200 "" [200] 301 100 300 302 100 300 303 100 300 "" あと先頭が数字では始まらないけど文字列が入っている場合もあります。 その列は何も処理をしたくないんです。もちろん空白の列にも何も処理をしたくないです。 説明が不足していてすみません。お願いします。
- 147 名前:login:Penguin mailto:sage [2008/06/13(金) 11:08:06 ID:+c/4qhZ/]
- どんどん条件変わるな。
もう付き合いきれん。
- 148 名前:login:Penguin mailto:sage [2008/06/13(金) 11:09:51 ID:+c/4qhZ/]
- >>140 を好きに改造して使ってくれ。
- 149 名前:login:Penguin mailto:sage [2008/06/13(金) 11:57:53 ID:5MIbjJC0]
- >>126
#!/usr/bin/awk BEGIN { OFS = "\t" } { if ($1 ~ /^\[.+\]$/) { section = $1 } else if ($1 ~ /^[0-9]/ ) { sub(FS, OFS) # これがいるかどうか分からない print section, $0 } else { print } } まぁ暇だし,自分の勉強にもなるしな
- 150 名前:126 [2008/06/13(金) 12:12:09 ID:j8pwVaea]
- >>147
ごめんなさいごめんなさい。許して下さい。 >>148 ありがとうございます。今から試してみます。感謝してます。
- 151 名前:126 [2008/06/13(金) 12:24:52 ID:j8pwVaea]
- >>149
^ syntac error ^ 正規表現が終端がされていません って出ます。 そのコードを2.awkとして保存してchmod 755 で ./2.awk < aaa.txt > bbb.txt としたんですけど僕のやりかたが悪かったんでしょうか。 もうちょっと試してみます。すみません。
- 152 名前:login:Penguin mailto:sage [2008/06/13(金) 13:34:55 ID:frtx8yVp]
- シェルとかプログラミング言語よりも,ちゃんと説明できる日本語を習得するのが先だとしみじみ思う.
- 153 名前:126 [2008/06/13(金) 13:45:24 ID:j8pwVaea]
- awk -f ./2.awk < aaa.txt > bbb.txt で実行できました。すみません。
でも結果としては数字のところにタブが挿入されただけでうまくいきませんでした。 また時間がある時にで結構ですので教えてくださると助かります。よろしくお願いします。
- 154 名前:126 [2008/06/13(金) 14:31:16 ID:j8pwVaea]
- あれれ。すみません。aaa.txtを作って試してみたらうまく動作してました。
元データのほうに何か問題があるようです。確認してみます。
- 155 名前:126 [2008/06/13(金) 14:57:25 ID:j8pwVaea]
- >>149
ありがとうございます。感謝感謝です。 if ($1 ~ /^\[.+\]$/) { を if ($1 ~ /^\[.+\]*$/) { にして無事動作しました。[]の後ろに文字列が入っているのが原因でした。 本当にありがとうございます。
- 156 名前:login:Penguin mailto:sage [2008/06/15(日) 03:39:35 ID:sc6xQlic]
- #!/bin/sh
n=`cat text.txt` で読み込んだ$nに対して 一行ずつ処理を行いたいのですがどうしたらよいでしょうか for a in $n を使おうと思ったのですが、スペースでも分割されてしまい 理想の動作をさせることができません よろしくお願いします
- 157 名前:login:Penguin mailto:sage [2008/06/15(日) 04:58:13 ID:wo2EqLas]
- cat text.txt | while read line;
do echo "$line"; done while read line; do echo "$line"; done < text.txt ダブルクオート
- 158 名前:login:Penguin mailto:sage [2008/06/15(日) 07:24:02 ID:Wqtu/af2]
- done < text.txt はbash依存だったような
- 159 名前:login:Penguin mailto:sage [2008/06/15(日) 09:18:42 ID:sc6xQlic]
- >>157
できましたありがとうございます! whileの中でreadを再び使えば同時に何行まとめて、という処理が出来るんですね
- 160 名前:login:Penguin mailto:sage [2008/06/15(日) 09:44:47 ID:riPFD/ci]
- >>158
Linux板的にはいいんでないの。 Unix板だったら気にしたほうがいいかもしれんが。
- 161 名前:login:Penguin mailto:sage [2008/06/15(日) 10:19:04 ID:+vOR/R57]
- >>158
/bin/shでも動くからおk
- 162 名前:login:Penguin mailto:sage [2008/06/15(日) 10:47:11 ID:Wqtu/af2]
- dashもOKだから、まぁいいのか
- 163 名前:login:Penguin mailto:sage [2008/06/15(日) 12:04:09 ID:MYPOmB3X]
- そのあたりってPOSIXでちゃんと規定されてるものなの?
単にbashをまねて取り込んだshなのか、真のshからサポートする機能か どうしたら見分けつけられるのかよくわからない。
- 164 名前:login:Penguin mailto:sage [2008/06/15(日) 12:33:26 ID:+vOR/R57]
- www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
- 165 名前:login:Penguin mailto:sage [2008/06/15(日) 12:43:50 ID:cU/mpVoU]
- bash や dash があるなら、cash もあるのかな。
Csh-Again SHell とか。
- 166 名前:login:Penguin mailto:sage [2008/06/15(日) 12:53:50 ID:MYPOmB3X]
- >>165
生まれ変わらなくていい。そのまま墓場で寝ててくれ>*csh
- 167 名前:login:Penguin mailto:sage [2008/06/15(日) 12:56:31 ID:MYPOmB3X]
- >>164
トン。$(command)とか$((expr))って標準だったんだとか色々勉強になるな。
- 168 名前:login:Penguin mailto:sage [2008/06/15(日) 18:20:40 ID:ue0hzIrD]
- bashで文字列の最後尾が / にあたるものをヒットさせたいのですが、どのようにしたら宜しいでしょうか?
- 169 名前:login:Penguin mailto:sage [2008/06/15(日) 18:49:35 ID:LSl6/nZ+]
- bashにそんな機能はない
- 170 名前:login:Penguin mailto:sage [2008/06/15(日) 18:53:49 ID:aTr7Cyki]
- bash()笑
- 171 名前:login:Penguin mailto:sage [2008/06/15(日) 18:54:17 ID:2ND6A6mz]
- grepで$を使うって話?
- 172 名前:login:Penguin mailto:sage [2008/06/15(日) 19:14:12 ID:AOTtbX65]
- エスケプすればなんとでも。
- 173 名前:login:Penguin mailto:sage [2008/06/15(日) 19:23:37 ID:lWrIWsAm]
- >>168
case "$str" in */) echo "match." ;; *) echo "unmatch." ;; esac
- 174 名前:login:Penguin mailto:sage [2008/06/16(月) 02:02:05 ID:irk9chgy]
- >>168です。仕事が入ってしまいレス遅れました、すいません。
bashにそのような機能はありませんか・・・。 grepでは無く条件式で文字列の末尾を判定させたかったのですが 何も知らない自分としては>>173さんの書いて頂いたのを参考に しようかと思います。助かりました、有難うございます。
- 175 名前:login:Penguin mailto:sage [2008/06/16(月) 08:11:50 ID:JECOF4SI]
- >>169に対する皮肉としか読めない。
- 176 名前:login:Penguin [2008/06/16(月) 11:27:24 ID:1Ms3xCVR]
- #!/bin/csh -f
set s=$1 set t=$2 set f=$3 cat $f | tail +$s | head -$t exit 0 echo ------------------ 以上を改良しろ、と言われました。みなさんならどうしますか?どなたか教えて下さい。
- 177 名前:login:Penguin mailto:sage [2008/06/16(月) 11:28:31 ID:/AfhYEBu]
- >>176
*csh を使うのをやめる。まずそれからだ。
- 178 名前:login:Penguin mailto:Sage [2008/06/16(月) 12:44:56 ID:qvjZYD3V]
- >>176
速度面で改善ならアセンブリで書き直してやれ
- 179 名前:login:Penguin mailto:sage [2008/06/16(月) 13:59:17 ID:6AAfiJB4]
- >>176
とりあえずマルチをやめること
- 180 名前:login:Penguin mailto:sage [2008/06/16(月) 23:26:05 ID:gSPrzSdg]
- >>176
次に日本語を勉強すること
- 181 名前:login:Penguin [2008/06/17(火) 07:40:56 ID:AmqP2Db0]
- abc
bcd cde <abc> hoge hoge (スペースはタブです) となっている場合、<abc>の列を削除したい場合 sed 's/\t//g' | sed "s/<abc>*//g" > hoge だとうまくいかないんですけどどこかおかしいんでしょうか。 ご指摘お願いします。
- 182 名前:login:Penguin mailto:sage [2008/06/17(火) 08:11:56 ID:+a7Qx5aV]
- >>181
sed 's/^<abc>.*//' * は「前のものの0回以上の繰り返し」。 シェルの glob と違って「任意の文字列」ではない。
- 183 名前:login:Penguin [2008/06/17(火) 08:57:44 ID:AmqP2Db0]
- >>182
ありがとうございます。試してみます。
- 184 名前:login:Penguin [2008/06/17(火) 10:01:29 ID:AmqP2Db0]
- 先程はありがとうございました。今度はまた問題が出ました。
aaa bbb ccc ddd eee となっているファイルに例えばcccの行にだけ行頭にタブを二ついれたいんですけど どうすればいいでしょうか。検索してみたんですけどそんなことをする例がないので わからないです。お願いします。
- 185 名前:login:Penguin mailto:sage [2008/06/17(火) 10:12:39 ID:+a7Qx5aV]
- >>184
sed 's/^ccc$/\t\tccc/'
- 186 名前:login:Penguin [2008/06/17(火) 11:07:44 ID:AmqP2Db0]
- >>185
ありがとうございます。 でも僕の例の出しかたが悪かったです。正確には英語じゃなくて日本語なんです。 あああ いいい ううう えええ おおお となってて「ううう」の先頭行に処理をしたいんです。 本当にすみません。
- 187 名前:login:Penguin mailto:sage [2008/06/17(火) 20:22:32 ID:RyDH/vmA]
- 同じ人が、ここ10日ぐらい似たような質問を繰り返しているような気がしてならない。
- 188 名前:login:Penguin mailto:sage [2008/06/17(火) 21:23:10 ID:yjVz7+7h]
- >>187
わわわ たたた ししし ももも そそそ ううう おおお ももも いいい ままま すすす
- 189 名前:login:Penguin mailto:sage [2008/06/18(水) 07:36:46 ID:U0oDy3CU]
- >>186
$ cat aiueo.txt あああ いいい ううう えええ おおお $ sed 's/^ううう/\t\tううう/' aiueo あああ いいい ううう えええ おおお >>185の例と全く同じにできるんだが、お前は試しもせずに文句ばっかりたれとんのか。 いい加減にしろデコスケ!
- 190 名前:login:Penguin mailto:sage [2008/06/18(水) 21:41:14 ID:wntHkGxD]
- >>189
うっせえよ秋葉原殺傷事件予備軍。
- 191 名前:login:Penguin mailto:sage [2008/06/18(水) 22:06:13 ID:POz9Y1nl]
- Debian etch使ってるんだが初期設定のスクリプトって作れたりする?
例えば・・ /etc/apt/sources.list OS全体のフォント設定 必要なツールなどインスコ などなど・・ 複数台にインスコするのはいいけど初期設定がマンドイ・・
- 192 名前:login:Penguin mailto:sage [2008/06/19(木) 00:14:33 ID:syeq8gZ9]
- >>191
やれば作れるんじゃね? がんばれ。
- 193 名前:login:Penguin mailto:sage [2008/06/19(木) 01:01:28 ID:x+K2/T6V]
- >>191
一番簡単なのはapache走っているサーバーにディレクトリ作り、そこの設定ファイルのテンプレとかを 置いておく。 そして新しいシステムの基本インスコをしてネットに繋がったら: wget hoge/~me/install-etch ./install-etch で、そのスクリプトの中でapt-getしたり設定ファイルを書き換えたり、必要なファイルをwgetで持って来て 置き直したりとかごちゃごちゃ書いておく。 RH系だったらkickstartがお薦め。 sargeでdebianのカスタムインストーラー作りも一時したけど えらくめんどくさかった。 最近はもっと優しくなったのかな?
- 194 名前:login:Penguin mailto:sage [2008/06/19(木) 01:15:35 ID:ETqS5qxr]
- >>192
おう >>193 ようはコマンドラインを書けばいいわけだよね。とりあえずこれやってみる。 Kickstartをググってみたら簡単そうだけどローカル鯖必要そうだね。 どうもでした。
- 195 名前:login:Penguin mailto:sage [2008/06/19(木) 01:32:21 ID:JFsnEc1J]
- すいません エスケープの使い方で質問させて下さい。
下みたいなスクリプトで #!/bin/sh A=tama B=mike for i in $A $B do tmp=`eval perl -e \'\$\a \= \"$i\"\; if \( \$\a \=\~ \/\^\\\S\+\(\\\S\{1\}\)\$\/ \) \{ print \"s\$\{ 1 \}x_player\" \}\'` echo "$tmp" done exit 0 一応こうすれば動くのですが、 perlの行のところにあるエスケープを減らしてすっきりさせたいのです。 良い方法を教えて下さい。
- 196 名前:login:Penguin [2008/06/19(木) 01:45:49 ID:syeq8gZ9]
- >>195
perl スクリプトを別ファイルに追い出す。
- 197 名前:login:Penguin mailto:sage [2008/06/19(木) 08:19:04 ID:k7GKeo3u]
- シェルに評価されてはいけない部分をシングルクォートする。
i=tama perl -e 'printf( "%s: nya-\n", '"$i"' )'
- 198 名前:login:Penguin mailto:sage [2008/06/19(木) 17:34:35 ID:qZMvy29K]
- shの質問です
スクリプトがCtrl+Cなどで終了させられた時に特定の動作を持たせたいのですが どのようにすれば実装できるでしょうか?
- 199 名前:login:Penguin mailto:sage [2008/06/19(木) 17:37:01 ID:syeq8gZ9]
- >>198
trap
- 200 名前:login:Penguin mailto:sage [2008/06/19(木) 18:08:53 ID:qZMvy29K]
- >>199
ありがとうございますm(_ _)m
- 201 名前:login:Penguin mailto:sage [2008/06/19(木) 23:30:35 ID:JFsnEc1J]
- >>196
なるべく一つのファイルにまとめたいんで。。。アドバイスありがとうございます。 >>197 197さんのアドバイスを参考にして、perlの行を下のように書くと動きました。 tmp=`perl -e '$a = "'"$i"'"; if ( $a=~ /^\S+(\S{1})$/ ) { print "s${ 1 }x_player" }'` しかし、こう書くと$aの前のシングルクォーテーションがバッククォーテーションで perlを実行した時に消えると思うのですが、sh -x で確認して見ると消えてません。 これで正しく書けているんでしょうか?勉強不足ですみませんがよろしくお願い致します。
- 202 名前:login:Penguin mailto:sage [2008/06/20(金) 08:28:49 ID:PYgL06kk]
- evalに渡すと消えるという意味なら。
tmp=`eval perl -e "'"'$a = "'"'""$i""'"'"; if ( $a=~ /^\S+(\S{1})$/ ) { print "s${ 1 }x_player" }'"'"`
- 203 名前:login:Penguin mailto:sage [2008/06/20(金) 09:48:11 ID:mQhh6bQc]
- tmp=$(perl -e 'print "s${1}x_player" if $ARGV[0]=~/^\S+(\S{1})$/' "$i")
- 204 名前:login:Penguin mailto:sage [2008/06/21(土) 01:08:40 ID:lACEyUp0]
- shでスクリプトを走らせている時に
スクリプト内でスーパーユーザの権限を得るにはどうやったらいいのでしょうか スクリプトにsuを埋め込むとスクリプトが止まってしまって exitしてから再びスクリプトが動き出すのですが 権限だけ持たせてスクリプトをそのまま走らせたいと思っています 何か手は無いでしょうか
- 205 名前:login:Penguin mailto:sage [2008/06/21(土) 01:11:38 ID:4k/SNXDG]
- >>204
sudo
- 206 名前:login:Penguin mailto:sage [2008/06/21(土) 01:42:03 ID:EyYhn7dK]
- リサ
- 207 名前:login:Penguin mailto:sage [2008/06/21(土) 01:49:53 ID:lACEyUp0]
- >>205
ありがとうございます (自分にとっては)有用なスクリプトが組めましたm(_ _)m 感謝の極みです
- 208 名前:login:Penguin mailto:sage [2008/06/21(土) 12:58:15 ID:9C5PYE0l]
- ふとした疑問だが、スクリプト内でスーパー・ユーザにスイッチするのと、スクリプト自体をスーパー・ユーザ専用にするのと、どちらが安全なのだろう。
- 209 名前:login:Penguin mailto:sage [2008/06/21(土) 13:28:05 ID:ESYd9xh6]
- >>208
運用の仕方によって変わるでしょ。 一概にどちらが安全とか言えないよ。
- 210 名前:login:Penguin mailto:sage [2008/06/22(日) 13:34:22 ID:IsXP6W78]
- 標準出力は標準出力のままで標準エラーだけをパイプしたいのですが
どのようにすればよいですか?(sh)
- 211 名前:login:Penguin mailto:sage [2008/06/22(日) 13:38:00 ID:aBc+5bz2]
- exec 3>&1
(echo stdout; echo stderr >&2) 2>&1 1>&3 | rev
- 212 名前:210 mailto:sage [2008/06/22(日) 13:59:15 ID:IsXP6W78]
- >>211
どうもありがとうございました。
- 213 名前:login:Penguin [2008/06/22(日) 16:57:49 ID:3HpeFvyL]
- あれ?更新されてない
- 214 名前:login:Penguin [2008/06/22(日) 17:03:12 ID:3HpeFvyL]
- rsyncをあえてつかわずローカルでのWEBサイトの更新を別のPCへFTP(put)
したいのですが混乱してきましたどなたかわかりますでしょうか? #!bin/sh #pukiwiki内のファイルで更新のあったファイルのあぶりだし。 echo = "`ls --full-time -F`" > fulltime awk '{print $6$7}' /var/www/html/pukiwiki/fulltime awk '{print $6$7}' /var/www/html/pukiwikibk/fulltime2 diff=diff /var/www/html/pukiwiki/fulltime /var/www/html/pukiwikibk/fulltime2 #diffの中身が空なら抜ける if [ "$diff"-eq /dev/null ];then logout #diffの内容がディレクトリなら再度中身のファイルの更新がないかを確認。 #diffの中から$10のファイル名を取り出す
- 215 名前:login:Penguin mailto:sage [2008/06/22(日) 17:04:18 ID:G5GD5xl+]
- >>214
lftp使え。
- 216 名前:login:Penguin [2008/06/22(日) 17:13:28 ID:3HpeFvyL]
- わかりました。ありがとうございます。lftp調べてみます。
- 217 名前:login:Penguin [2008/06/22(日) 17:19:23 ID:3HpeFvyL]
- ローカルになく、リモートにのみあるファイルを削除したいときは
mirror -R -e や mirror -e などできるみたいですが、 ローカルで更新されたファイルのみアップといったこともできるのでしょうか?
- 218 名前:login:Penguin [2008/06/22(日) 17:47:05 ID:3HpeFvyL]
- #!/bin/sh
cd /var/www/html/pukiwiki lftp -e "mirror -e -vvv pukiwiki; bye" ftp:XX.XX.XX.XX/var/www/html/pukiwiki これだけでいけますでしょうか?
- 219 名前:login:Penguin mailto:sage [2008/06/22(日) 18:16:38 ID:7nMjRrut]
- n 更新されたのみ
mirror -Rn
- 220 名前:login:Penguin mailto:sage [2008/06/22(日) 22:21:11 ID:R/kAIh0A]
- ubuntu初心者スレから誘導されました。
成形した時刻の文字列をクリップボードにコピーするシェルスクリプトを作りたいのですが まずdateで時刻を取得出来ることがわかりました。それで日付や時間を成形してみました。 で、その取得した時刻をクリップボードにコピーさせる方法が分かりません。 ubnutuは8.04です。よろしくお願いします。
- 221 名前:login:Penguin mailto:sage [2008/06/22(日) 22:29:53 ID:G5GD5xl+]
- >>220
xclip が使える。ただし日本語が通らない。 ruby がクリップボード操作できるみたい。
- 222 名前:login:Penguin mailto:sage [2008/06/22(日) 23:37:38 ID:MIeLc8tv]
- シェルスクリプトで正規表現使いたいのですが、
末尾が .jp のものだけマッチさせたい場合は $\.jp でよろしいのでしょうか?
- 223 名前:login:Penguin mailto:sage [2008/06/22(日) 23:55:19 ID:iLaxDbCt]
- シェルだけで正規表現って扱えるの?
- 224 名前:login:Penguin [2008/06/23(月) 00:09:49 ID:xSXSaj7v]
- >>223
[[ 'www.example.jp' =~ '\.jp$' ]] && echo OK
- 225 名前:login:Penguin mailto:sage [2008/06/23(月) 00:26:20 ID:bFQcdw6C]
- >>223
man expr
- 226 名前:login:Penguin [2008/06/23(月) 07:14:57 ID:xSXSaj7v]
- >>225
expr は外部コマンドじゃね?
- 227 名前:login:Penguin mailto:sage [2008/06/23(月) 07:23:33 ID:/dfygF5Q]
- bash 3.2.33だが>>224だとOKと表示されない件について
- 228 名前:login:Penguin mailto:sage [2008/06/23(月) 07:55:06 ID:xSXSaj7v]
- quote しちゃだめになったのか。
[[ 'www.example.jp' =~ \.jp$ ]] && echo OK
- 229 名前:login:Penguin mailto:sage [2008/06/23(月) 08:04:56 ID:E3xyu4wD]
- >>221
そうですか。日本語通らないですか。 rubyがいけるならPythonもいけるのかな。探してみます。ありがとうございます。
- 230 名前:login:Penguin mailto:sage [2008/06/23(月) 13:11:35 ID:R4pyjC2R]
- >>229
xselでおk
- 231 名前:login:Penguin mailto:sage [2008/06/23(月) 20:44:19 ID:E3xyu4wD]
- >>230
さっそく入れて使ってみました。 中クリックで文字列を選択した内容をそのまま貼り付けれてものすごく便利でした! いいものを知りました。ありがとうございます。 で本題 スクリプトはこんな感じまで書きました。 #!/bin/bash y=`date +%Y` m=`date +%m` d=`date +%d` t=`date +%T` DATE= $y/$m/$d/" "$t echo $DATE これで、chmod -x で権限を与えて実行すると、現在の時間を返してくれるようになりました。 が、xselを使って$DATEをクリップボード(かプライマリ)にコピーする方法が分かりませんでした。--inputは変数が代入出来ないようですし。 xsel -p < $DATE ではうまくいきませんでした(ファイルじゃないので当たり前ですか)
- 232 名前:login:Penguin mailto:sage [2008/06/23(月) 20:57:33 ID:II3EglSV]
- >>231
>xsel -p < $DATE ではうまくいきませんでした echo $DATE > xsel -p
- 233 名前:login:Penguin mailto:sage [2008/06/23(月) 21:41:12 ID:t++FsyID]
- echo $DATE | xsel -i
- 234 名前:login:Penguin mailto:sage [2008/06/23(月) 21:51:30 ID:E3xyu4wD]
- >>232
どうもうまくいきませんでした。 修正したものを実行すると、〜.shと同じディレクトリに xsel という中身が"-p"の入ったファイルが作成されてました。
- 235 名前:login:Penguin mailto:sage [2008/06/23(月) 21:54:47 ID:eV6dG77Y]
- >>234 look asap >>233
- 236 名前:login:Penguin mailto:sage [2008/06/23(月) 22:05:35 ID:E3xyu4wD]
- >>233
こちらもうまくいきませんでした。 実行すると、以下の結果が表示されました。 ./date_clipboard.sh: 7: 2008/06/23/ 21:52:49: not found /が入っていると、ディレクトリと認識してしまうのではないかと思って、/を外して数字だけ並んだものも作って見ましたが、だめでした。 同じく echoで$DATEの中身とnot foundと出されました。 >>235 こういうことでしょうか? #!/bin/bash y=`date +%Y` m=`date +%m` d=`date +%d` t=`date +%T` DATE= $y/$m/$d/" "$t look asap echo $DATE | xsel -i これを実行しても、同じく、echoで$DATEの中身とnot foundと出ました。
|

|