最近Linuxコマンドは全然使わないんだけど、以前死んだ魚の目をしたデブのおっさんが、とあるシステムでエラーメッセージがどの画面で表示されてるかを調べて、エラーメッセージの発生原因と対応方法が分かる一覧表を作成しろって言われた。
目的はお客様からの問い合わせ件数を減らすこと。で俺は設計書読ませてって言ったら、そいつは「なにそれ?そんなのないから頑張ってソースとDBみてエラーメッセージ抽出して」と言ってきた。そいつはパワハラで有名でなぜ辞めさせられていないか疑問だった。
それはさておき、今回はどうしたらソースからエラーメッセージの抽出ができるのかなど学んだことを解説していく。誰かの助けになれば嬉しい。
目次:クリックでジャンプ
grepでAND検索
例えば、↑のファイルから以下の2つの文字列が存在する行を検索したい場合、
- 【ABC文字列】
- あいう
grep 【ABC文字列】 log.txt | grep あいう
上記のコマンドを使う。
↓は結果。
OR検索
次に、↑のファイルから以下の2つの文字列がのどちらかが存在する行を検索したい場合、
- 【ABC文字列】
- 【えおか】
grep -e【ABC文字列】-e えおか log.txt
上記のコマンドを使う。
↓は結果。
swiftのファイルから「Hello World!」が記載されている全ての行を抽出
例えばTESフォルダ内のa.swiftとg.swiftファイルのみに「Hello World!」の文字列の記載がある。なので、その記載がある行を全て抽出したいとする。
find . -name "*.swift" | xargs grep "Hello World!"
findコマンドは拡張子検索で使う。
↓は結果。
swiftのファイル数を調べる
例えばTESTフォルダ内(サブディレクトリも含む)で何個のswiftファイルがあるか調べるとする。
find . -name "*.swift" | wc -l
↓は結果。
viでファイルを編集
ファイルを開く
「vi filename」でファイル名を指定して既存のファイルを開く。もしlog.txtが存在しない場合、新しくファイルを作成される。
ファイル
ファイルを編集
ファイルを開くと上記のようにファイルが開かれる。この状態は「コマンドモード」にいるため、編集ができない。
なので、「a」をおして「編集モード」にする。これで編集できる。
ファイルを保存
escを押して「編集モード」を終了し、「:wq!」を入力しEnterを押せば入力した文字が保存しviが終了する。
保存せずに終了
escを押して「編集モード」を終了し、「:q!」を入力しEnterを押せばファイルを保存せずにviが終了する。
cpでファイルをコピー
cp /data/*.ts /usr/local/test # *.ts をコピー
コピー元ファイル名 コピー先ファイル名