![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんばんは。
課題でcとJavaのコードを実行してstraceコマンドでその実行時のシステムコールを読み取るという課題をやっています。
Ubuntuの端末でcとJavaのコードをコンパイルし、straceコマンドを実行するとtracefileというのがでてきてそこにずらずらシステムコール(おそらく)が書いてあります。
↓ こんな感じ。
3232 execve("./Noop", ["./Noop"], [/* 39 vars */]) = 0
3232 brk(0) = 0x98c6000
まずこれがシステムコールであっていますか?execveとかがそうですか?
これが6000行くらいあります。
質問はこの中からresumedと書かれたラインを抜かした行数を数え(システムコールの数を数える)、さらにシステムコールの種類の数を数えたいのですがいい方法はありますでしょうか?
便利なコマンドとかあったら使い方とともに教えていただきたいです。
もし何か検討違いなことを言っていたら教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
正規表現の問題ですね
最初の ( 以降を取り除くってことでよければ
sed 's/\([^(]*\)(.*/\1/'
かな。
後方参照を使って、行全体を最初の ( の直前までで置き換えてます。
#もっとシンプルな表現もありそうですが・・・
(参考)http://www.kt.rim.or.jp/~kbk/regex/regex.html
おぉ、できました!(以降が全部消えました。
そしたら最初の4ケタの数字も微妙に違っていることに気付いて
\{n\}を使ったら最初の4ケタの数字も消せシステムコールだけでまとめることができました。
あとはuniqとsortとwc使ったらできた、と思います。
とても助かりました。
ありがとうございました。
No.1
- 回答日時:
課題ですよね
sedとかawkとかgrepとかperlとかsortとかuniqとかwcとか、色々組み合わせて「いい方法」を見つけるのが醍醐味なので、楽しんで取り組んでください。
> もし何か検討違いなことを言っていたら教えてください。
s/検討違い/見当違い/
この回答への補足
漢字間違い、お恥ずかしい。
先生もsedとuniqが使えるといっていたのでその二つでがんばっているのですが、
3232 execve("./Noop", ["./Noop"], [/* 39 vars */]) = 0
の( 以降を何かに置換してuniqでまとめようとしています。
sed 's/([^(]*$/ XXX/'とし( 以降をXXXで置換しようとしたのですがこれだと( が二回出てくると最後の( 以降しか置換してくれません。
最初の( から末尾までを置換する方法はありますか?
or
もっとスマートな方法がありますか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
出力のリダイレクトコマンド「>...
-
cronでrmコマンドを実行すると...
-
scriptコマンドで出力したログ...
-
ATコマンドのスケジュールについて
-
誰かにサーバにあるデータを消...
-
Macの手書き漢字入力ツールにつ...
-
フロッピーディスクの読み込み方法
-
バッチスクリプト処理でエラー...
-
コマンドプロンプトのFOR文がダ...
-
CPUとOS の違いは?
-
メーリングリスト宛てのメール...
-
procmailでの自動返信
-
OS インストール場所確認
-
ソフトのインストール場所って...
-
Vine Linux 2.0.1をインストール
-
VBでExcelが起動されているか知...
-
Xserverを停止したいが、gdmが...
-
BootCamp環境を外付けHDDに入れ...
-
shell関数について
-
コマンドプロンプトの危険性を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
誰かにサーバにあるデータを消...
-
バッチで削除したフォルダをイ...
-
scriptコマンドで出力したログ...
-
OpenLDAPでのユーザ一覧表示
-
出力のリダイレクトコマンド「>...
-
centOS7サーバーに配置したHTML...
-
シャットダウンしたユーザを知...
-
expectの使い方について
-
mac ターミナル
-
tcsh(v6-11)で文字化けする問題
-
lprコマンド(印刷)を実行する...
-
「エンドタグがスタートタグと...
-
ある特定のフォルダの中に、2つ...
-
ubuntuに外部侵入できるか
-
telnet後のログのとり方
-
リモートでバッチを実行(Windo...
-
WindowsNT 4.0Server スケジュ...
-
Linuxのコマンドを作成
-
ログに特定の文字が含まれてい...
-
iCabの全画面表示を終了させる...
おすすめ情報