diffで改行コードを無視(2)

表題の通り。メモである。続き。

■ 環境

  • Linux

■ diff

先日のエントリでは`–strip-trailing-cr`オプションを試し、確かに有益ではあったのだがオプションを覚えられない…。と思っていろいろ試していると下記でも同等の結果を得られた。

$ diff -B -w example1.xml example2.xml
42c42
< <ex id="11111" value="3">
---
> &ltex id="11111" value="13">
81c81
< <ex id="22222" value="9">
---
> <ex id="22222" value="12">
$

`man`によると下記オプションである。

$ man diff
  :
       -w, --ignore-all-space
              ignore all white space

       -B, --ignore-blank-lines
              ignore changes whose lines are all blank
  :

空白や改行も無視すると同等の結果を得られた。

以上。

■ 関連

diffで改行コードを無視

diffで改行コードを無視

表題の通り。メモである。

■ 環境

  • Linux

■ diff

`diff`を取ったらファイルの全行が対象となって出てきた…。改行コードが問題のようだな、とわかったものの改行コードを直したファイルを用意して再度`diff`を取るのも面倒である。と思っていたら`man`に下記のようなオプションの記載があった。

$ man diff
  :
       --strip-trailing-cr
              strip trailing carriage return on input
  :

このオプションを使って下記ファイルを試してみる。

$ file example1.xml example2.xml
example1.xml: exported SGML document, ASCII text, with CRLF line terminators
example2.xml: exported SGML document, ASCII text
$

上記オプションを実施してみたところ。

$ diff --strip-trailing-cr example1.xml example2.xml
42c42
< <ex id="11111" value="3">
---
> &ltex id="11111" value="13">
81c81
< <ex id="22222" value="9">
---
> <ex id="22222" value="12">
$

改行コード以外に2点の違いがあることがわかった。

以上。

■ 関連

diffで改行コードを無視(2)

jsonlint

表題について。たまたま知ったので試してみた。

■ 環境

  • jsonlint 1.6.0
  • Homebrew
  • macOS High SIerra

■ jsonlint

検索。

$ brew update
$ brew search jsonlint
==> Formulae
jsonlint
$

インストール。

$ brew install jsonlint

インストールされたものは下記のようである。

$ brew ls jsonlint
/usr/local/Cellar/jsonlint/1.6.0/bin/jsonlint
/usr/local/Cellar/jsonlint/1.6.0/libexec/bin/jsonlint
/usr/local/Cellar/jsonlint/1.6.0/libexec/lib/ (275 files)
$

ヘルプを確認してみる。

$ jsonlint --help

Usage: jsonlint [file] [options]

file     file to parse; otherwise uses stdin

Options:
   -v, --version            print version and exit
   -s, --sort-keys          sort object keys
   -i, --in-place           overwrite the file
   -t CHAR, --indent CHAR   character(s) to use for indentation  [  ]
   -c, --compact            compact error display
   -V, --validate           a JSON schema to use for validation
   -e, --environment        which specification of JSON Schema the validation file uses  [json-schema-draft-03]
   -q, --quiet              do not print the parsed json to STDOUT  [false]
   -p, --pretty-print       force pretty printing even if invalid

$

試しにJSONの体をなしていないファイルで試してみると下記のようになった。

$ jsonlint sample.json
Error: Parse error on line 3:
...      {            Request": {
----------------------^
Expecting 'STRING', '}', got 'undefined'
  :

」が無いことを知らせてくれた。

$ jsonlint sample.json
Error: Parse error on line 8:
...          "Method": "GET
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
  :

,」が無いことを知らせてくれた。

とりあえずは自分がやりたいことには使えそうである。

以上。

tcpdumpでファイル読み込み

表題の通り。今までは取得しつつパケットが飛んでいるかその場で確認するかWiresharkで見るかしかしてこなかったので知らなかったのでメモ。

■ 環境

  • tcpdump
  • macOS High Sierra

■ tcpdump

取得したパケットキャプチャの結果をWiresharkで見ていて、それを元に資料化したかったのだがWiresharkでテキストとしてコピーしたりするやり方がわからず。。”.pcapng“をテキストで見る方法とかあるのかな、とか考えていたが、`tcpdump`でそもそもファイルから読み込みってあったよな、となったので確認。

$ man tcpdump
  :
       -r file
              Read packets from file (which was created with 
              the -w option or by other tools that write pcap
              or pcap-ng files).  Standard input is used if file 
              is ``-''.
  :

いけるじゃないか。

以上。

■ 関連

tcpdumpで特定のホストとの通信のみ取得

tcpdumpで特定のホストとの通信のみ取得

表題の通り。あまり`tcpdump`やらないのでメモしておく。

■ 環境

  • Linux

■ tcpdump

下記のようにして特定のホストとの全通信を取得する。後から調べやすいようにWiresharkで読める形式で取得しておく。

$ tcpdump host XXX.XXX.XXX.XXX -w dump.pcapng

つい癖で”-A -n”を付けたりするが、多分必要ない気がする。

以上。

■ 関連

tcpdumpでファイル読み込み