|
>>3069 68user > bash なら .bash_history。 一応確認してみましたが、bash はヒストリに時刻を記録しないみたいですね。 |
|
>>3070 68user csh,bash環境で確認しました。 ls等のコマンドを実行してから一度ログオフし、再度ログインしました。 そこでホーム配下の.historyおよび.bash_historyを確認しましたが何も書かれておりませんでした。 .historyの権限は644になっております。rootアカウントで実行していますので権限は問題ないかと思います。 何か、出力要否のフラグの設定があるのでしょうか? |
|
>>3071 児嶋 csh なら、シェル変数 history・savehist がセットされているか確認。 % set | grep hist history 1000 savehist 2000 セットされていなかったら % set history = 1000 % set savehist = 2000 など。 bash なら % set|grep -i hist HISTFILE=/home/user/.bash_history HISTFILESIZE=500 HISTSIZE=500 ここらへんですかねぇ (常用していないのでよくわかりませんが)。 |
|
>>3072 68user 早速実行してみました。 結果、コマンドラインは出力されましたが、時刻までは出力されませんでした。 何とか、時刻も出力させる方法はないものでしょうか? |
|
>>3073 児嶋 またまた誤解してました。csh は時刻を記録しないみたいですね。 というわけで、「tcsh を使う」が解でしょうか。 |
|
はじめまして。 考えても考えてもわからないことが ありますのでご教授下さい。 あるファイルに aaaaああああaaaa いbbbbbbbbbbbい のような行があって、 各行から2バイトの文字だけを 抜き出したいのですがどうすれば できるのでしょうか? イメージとしては上のファイルを このように出力したいのです。 ああああ いい どうしてもわからないので よろしくお願いします。 |
|
>>3067 68user 私もcompress→uncompressと試してみました。 解凍後のファイルサイズも一致しており、上手くいっているようです。 とても助かりました。ありがとうございます。 実はもうひとつ教えていただきたいことがありまして・・・ cshellで文字列操作は可能なのでしょうか? 下記を解決する方法があれば教えて下さい。 Q1.指定したディレクトリからファイル名を変数に取得。 Q2.上記Q1でAAA_YYYYMMDD.txtと言う名前を取得できたとして、 YYYYMMDDのみを切り出して、shell内で用意した日付と大小を 比較出来るのでしょうか? ご存知の方、教えて下さい(T_T) |
|
>>3074 68user ありがとうございました。 環境が整ったときにtcshで確認しようと思います。 |
|
親プロセスで子プロセスをforkするC言語プログラムがあります。 子プロセスは複数作成され、処理が終わると自動的に消滅します。 親プロセスで現在存在している子プロセスの数を把握したいのですが、簡単な方法はありますでしょうか。 子プロセスの数だけ分かれば良いです。 子プロセス数カウンタを設け、forkでインクリメントし、子プロセスの終了を検知してデクリメントする方法もあるかと思いますが、もっと簡単な方法があれば教えていただけますでしょうか。 よろしくお願いします。 |
|
>>3075 美春 考え方を変えて、日本語以外を除くとするなら % sed 's/[a-zA-Z0-9]//g' < file など。本当に日本語だけを拾いたいなら http://www.din.or.jp/~ohzaki/perl.htm#JP_Match を参考に perl でやるのがよいでしょう。 >>3076 山田 > cshellで文字列操作は可能なのでしょうか? foreach file (AAA_*.txt) set date=`echo $file | sed 's/^AAA_\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*/\1/'` echo '$file -> $date' if ( $date < '20020114' ) then echo $date endif end 仕事や課題を丸投げされると答える側もつまらないです。質問するなら もっとおもしろい質問をしてください。 お金を払っていただけるなら、(お仕事として) つまらん質問にも 答えますけど。 >>3078 koko > 親プロセスで現在存在している子プロセスの数を把握 > したいのですが、簡単な方法はありますでしょうか。 簡単、というか適当な調べ方でよいなら、ps して、親プロセスが 自分であるプロセス一覧を取得、などがあると思いますが、 ps しているプロセスは除くとか余計な処理をしなきゃいけない と思うので、結果的にはあまり簡単じゃないと思います。 - 親がいろんな仕事をするのなら、fork するときに インクリメントして、SIGCHLD を受けるたびに デクリメント (>>2988 を参照) - 親は子の終了を待つだけなら、fork するときに インクリメントして、wait して、wait から戻って きたらデクリメント。 でいいんじゃないでしょうか。 |
|
>>3079 68user やはり、ご指摘の方法が妥当なところのようですね。 この方法で対応する事とします。 ありがとう御座いました。 |
|
>>3076 山田 ご回答ありがとうございます。 >仕事や課題を丸投げされると答える側もつまらないです。質問するなら >もっとおもしろい質問をしてください。 了解しました。 先日、ほぼ一日調査してたのですが出来なかったもので。。。 申し訳ないです。。 |
|
>>3067 68user うまくいきました。 本当にありがとうございました。 perlの方も挑戦してみます。 度々の質問で申し訳ありませんが、 grepの正規表現で"'"(シングルクォーテーション) を出さないようにしたいのですが、 うまくいきません。 grep '[\']' <file> だとダメみたいです。 どうすればよいのでしょうか? 初心者の質問ですみません。 よろしくお願いします。 |
|
>>3082 美春 grepは行単位で処理するので、シングルクォートを含む行を表示しない、 という処理は可能です。grepに-vをつけると、条件に合わない行のみを 出力するので、 % grep -v "'" filename とすればfilenameファイル内のシングルクォートを含まない行のみを 出力してくれます。 もしシングルクォートを文字単位で削除したいのであれば、 % sed -e "s/'//g" < filename とすればよいと思います。 |
|
No. 3083 has 感動してしまいました。 manで調べろと怒られるかと 思ったのにご丁寧に ありがとうございました。 |