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'
  :

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

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

以上。

サイズ指定で画像を変更

表題の通り。

■ 環境

  • ImageMagick 7.0.8
  • macOS High Sierra

■ ImageMagick

以前も`convert`でサイズ変更をしたのだが、その時は元サイズと比較してのパーセンテージでの指定であった。

今回はサイズを指定しての変更である。

$ convert before.jpg -resize 128x128 after.jpg

上記は”before.jpg“を”128×128“のサイズに変換している。

複数の画像ファイルを一気に変換したい場合は下記にて実行が可能である。

$ mogrify -resize 128x128 *.jpg/code

`mogrify`は元ファイルが残らず同名のファイルに上書きとなるので注意が必要である。

以上。

■ 関連

画像サイズの変更

date -d “”

表題について。以前のエントリに似ている。知らなかったのでメモ。

■ 環境

  • GNU date
  • Linux

■ date -d “”

スクリプトの中で、取得してきた日時の文字列をエポック秒に変換している。それについては関連にある通り以前書いたエントリである。

今回はそのスクリプトの中で日時の文字列が正常に取得できていなかったのに何らかのエポック秒が取得できてしまったので、あれ?となったのでメモである。

$ date -d "" +%s

上記のように、日時の文字列を渡す箇所が空になってしまったまま実行してしまった。0なりかが返ってくるかと思いきや下記の値が返ってきた。

$ date -d "" +%s
1530716400
$

この数値はなんだろう?と思い逆を実行する。

$ date --date @1530716400
Thu Jul  5 00:00:00 JST 2018
$

なるほど。その日の最初のエポック秒が得られるようだ。

以上。

■ 関連

date -d