一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • linuxコマンドの使用NGな組み合わせ

ファイル内の内容を出力する出力コマンドは多数あるが、最もよく使われるのが”cat”,”head”,”tail”だろう。それぞれ、ファイル内の内容をすべて出力する、先頭10行を出力する、末尾10行を出力するを意味する。なお、後ろ2つは任意でオプション付けて出力桁数を指定可能になっている。この3つのうち”cat”を含んだ2つ以上の組み合わせは予期せぬエラーになる可能性があるため、NGである。例えば以下の命令文では、出力ファイルの行数が多くそれをcatコマンドで出力中にheadコマンドで挟むことによって処理が途中で打ち切られてエラーになっているようだ。ただし、厄介なことに毎回エラーになるわけではなく、成功することも多いので再現が難しい。対策方法としてはheadの部分をawk ‘NR<11{print;}’と途中で打ち切られてもエラーにならないコマンドにする必要がある。

以下エラーになる可能性があるコマンド例:
sh-4.2# wc -l ./file
1000
sh-4.2# cat ./file | head
no column date
1 A 20240101
2 B 20240102
3 C 20240103
4 D 20240104
5 E 20240105
6 F 20240106
7 G 20240107
8 H 20240108
9 I 20240109
cat : 処理エラー
sh-4.2#

The following two tabs change content below.

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア