|
ありがとうございます。 助かりました。 また、質問があれば投稿しますのでその時はよろしくお願いします。 |
|
だから私を見て! http://sgldwssr.hp.infoseek.co.jp/otp.html |
|
awkについての質問です。 Solaris7上で、nawkを実行する際、 "cat text.txt" | getline var という構文があるとvarに "cat text.txt" の結果が入るのですが、 同じことを /usr/xpg4/bin/awk で実行すると var に値が 入らないようです。 このあたりの事情をご存知の方、教えてくれませんか? |
|
下記の件ですが、awkをかける対象のテキストの行数が、 getlineで取り込まれるテキストの行数より少ない場合に 発生することがわかりました。 つまり、getlineで取り込まれるテキストの方が短い場合、 nawkでは最後の行の内容が保持されて、それを利用した置換処理が 行われるが、 /usr/xpg4/bin/awk では行われないということです。 |
|
>>3671 tmr なるほど。そういう違いがあることは知りませんでした。一般論としては、 getline の戻り値チェックをしっかり行ないましょう、てな感じでしょうか。 |
|
誰かハイホーネットにメールを送信するアプリをくれましたか?(w |
|
はじめましてvmと申します。 UNIXのコマンド処理で質問があるのですが、 何行かあるテキストファイルの指定のカラム位置に文字列を行単位に挿入 するという処理を、UNIXのコマンドだけでやりたいと思っています。 自分で処理を考えてみたのですが、 1. cutコマンドを使用して、指定カラム位置を境にして、 「指定カラム位置より前の文字列が入ったファイル」と 「指定カラム位置より後の文字列が入ったファイル」に分割する。 2. paste コマンドを使用して、セパレータを元のファイルが使用していない文字を指定して、 1で作ったファイルを結合する。 3. sedコマンドでセパレータ文字を挿入したい文字列に置き換える。 ワークファイルができてしまって、UNIXっぽくないので、 これ以外にもっと簡単なやり方がないか探しているのですが、 もしご存知の方いらっしゃいましたら、ご教授いただけないでしょうか。 よろしくお願いします。 |
|
>>3674 vm やりたいことがよくわからないので、入力と出力のサンプルを 提示してください。 |
|
>>3675 68user 多分このような事を考えているのだと思います。 ■入力ファイル aaaa,bbbb cc,ddd eeeeee,ffff ■挿入文字列 00 ■出力ファイル aaaa00bbbb cc00ddd eeeeee00ffff >>3674 vm で、やりたい事が上記の通りだとすると、 perlとかawkで出来ると思います。 |
|
こんにちはvmです。 説明不足でした。 入力データは1ファイルで、 AAAABBBCCCCC DDDDEEEFFFFF GGGGHHHIIIII : という感じで項目間の区切り無しのレコードが いくつか入っているという状態で、 AAAABBB****CCCCC DDDDEEE****FFFFF GGGGHHH****IIIII : 1行目で見ると、BBBとCCCCCの間に****を挿入するということを、 シェルかUNIX標準コマンドでやりたいと考えています。 先に書いた私の手順ですと、一度cutコマンドで AAAABBB DDDDEEE GGGGHHH : CCCCC FFFFF IIIII : 2つのワークファイルを作るので手順も多くて面倒なため、 他にやり方がないものかと考えている次第です。 もっと単純化できる方法がありましたら、ご教授ください。 お願いいたします。 |
|
>>3677 vm 区切り文字なしだとすると、文字列の挿入個所は何を基準に判断するのでしょうか? 下の例を見る限りでは、行頭からのバイト数で分割してるように見えますが、あってますか? 後気になった点はUNIXの標準コマンドというのは どこまでを指すのでしょう? インストール時点でインストールされるコマンドは、 OS・インストールオプションによって異なると思いますが・・・ |
|
こんにちはvmです。 >下の例を見る限りでは、行頭からのバイト数で分割してるように見えますが、あってますか? すみません。そのとおりです。 >後気になった点はUNIXの標準コマンドというのは >どこまでを指すのでしょう? POSIXに準拠しているコマンドのことを指していました。 あれからちょっと調べてみたのですが、 awk '{printf("%s%s%s\n", substr($0,1,2), "TUIKA", substr($0,3));}' target.txt > result.txt awkコマンドであれば、私のやりたいことがワークファイルを作らずに 実現できそうなことがわかりました。 どうもお騒がせしました。 これより良い方法がございましたら、ご教授ください。 |
|
gfg |
|
宜しくお願いします。 tarコマンドを実行した際に以下のメッセーシ゛が出たんですが、 何を意味しているかわかりません。 ご教授ください。 -------------------------------------------------- cd / tar -cvf /dev/rmt0n ./usr/* tar -rvf /dev/rmt0n ./var/* ← メッセーシ゛が出ます -------------------------------------------------- 表示メッセージ tar:blocksize=0 tar:backspace over record failed -------------------------------------------------- ご教授ください。宜しくお願いします。 |
|
mailxコマンドに関してですが 件名がベース64で本文がJISコードのメールを読む時、 以下の状態になってしまいます。 直す方法を知っている方おりましたらお教えください 1.件名が日本語の長文だと、以降の画面が文字化けします 2.JISコードの本文を開くと 「---Executing: kterm sh: kterm: 見つかりません」 とでてしまい表示できません |
|
>>3679 vm > これより良い方法がございましたら、ご教授ください。 awk より良い方法かどうかはわかりませんが、 sed 's/^\(..\)/\1TUIKA/' < target.txt > result.txt というのもあります。 >>3681 馬場 すでにアーカイブ済のファイルが出現したため、前に戻って 置き換えようとしたが、テープドライブのため前に戻る機能が なかった、ということではないですかね。 >>3682 ryo Solaris2.6 ではその症状は出ませんでした。 |
|
こんにちは。Phantomと申します。 ネットで色々調べた結果ちょっと、見当たらなかったので質問させてください。 アクセスログの話なのですが、Web/FTPサーバのアクセスログでは有りません (Web/FTPのアクセスログの情報は腐るほど有りました。また、情報が全く無か ったと言うのは嘘で、高いソフトウェアやASPぐらいの情報しか出てこず、個人 の私としては手が出ません。)。 ローカルのLinux環境内でアクセスされたファイルのログを取りたいと考えて いるからです(Unix系OSで実現するのが難しいから情報が少ないのでしょうか?)。 当然、アクセスログなのでアクセスしたユーザ名、時間、アクセス先などの情報を 見たいと思っています。 セキュリティの事もあるのですが、私自身が何時ファイル(特に設定ファイル)の 編集を行ったかという履歴を見たいからです。 それで、これに見合った(フリー)ソフトウェアやシェルスクリプト等が存在しまし たら、紹介していただければ幸いです。(それとも、もしかしてすごく簡単にPerl とかで組めちゃったりするんでしょうか?) |
|
>>3684 Phantom 履歴や変更点の確認をしたいということなら、cvs や subversion などのバージョン管理ツールを使うのがよいでしょう。 履歴を何段階でもとることができ、細かい修正点を記録できるという 利点がありますが、その一方でファイル更新とバージョン管理とが 密に連携しているわけでないので、バージョン管理ツールへの登録 忘れが発生する可能性がある、という欠点があります。 あるいは > ユーザ名、時間、アクセス先 だけの情報だけでよいなら、 - ユーザ名、時間、ファイル名を記録する - エディタを起動する - (必要なら) 編集前と編集後のファイルをどこかに保存する というファイル編集用スクリプトを作成し、それを使うように すればよいでしょう。もちろん、このスクリプトを使わずに直接 ファイルを修正してしまうとアウトです。 もっと厳密にやりたいならシステムコールをフックするタイプ のものが必要です。たとえば Linux Security Module (LSM) や Sysrace: http://www.citi.umich.edu/u/provos/systrace/linux.html など。 しかしこれらの主目的はシステムコールを許可するかしないかを 決めるためのものなので、ログを記録できるような仕組みがある のかどうかはわかりません。 > Unix系OSで実現するのが難しいから情報が少ないのでしょうか? Windows なんかだと API のフックが簡単にできますが、UNIX は そこらへんの機能が弱いのです。 |
|
>>3685 68user 凄く素早いレス有難う御座いました。 沢山の情報を与えてくださって感謝しております。 > cvs や subversion 成る程。バージョン管理ツールという手が有りましたか。 > ファイル編集用スクリプトを作成 作ってみたいと思います。ただ、仰る通り私、忘れっぽいので直接ファイル 編集しちゃって失敗しそうです。 > LSM や Sysrace 私には難しいみたいですが、一つの手として調べてみます。 |