Quantcast
Channel: いろいろ備忘録日記
Viewing all articles
Browse latest Browse all 1514

catコマンドのちょっとしたTips

$
0
0

概要

小ネタ。

大抵、最初に覚えるコマンドの一つである cat コマンドさん。

実はいろんなオプションがあって、面白いです。

行番号を付与して出力

-nオプション、または -bオプションを付与すると行番号を付与して出力してくれます。

違いは -nオプションが空行も含めて全行に行番号を振ってくれるのと、-bオプションは空行には行番号を振らないって違いです。

#!/usr/bin/env bash## cat コマンドのちょっとした Tips (行番号を付与)## REFERENCES:#   - https://linuxhint.com/cat-command-linux/#_exec() {# 作業用ディレクトリ作成basedirpath=/tmp/try-linux/cat/with_number
    rm-rf"${basedirpath}"mkdir-p"${basedirpath}"

    cat << EOF> "${basedirpath}/app.go"package mainfunc main() {    println("hello Golang")}EOF# -n オプションをつけると行番号を付与してくれる# この場合、空行を含む全行に行番号が振られる
    cat -n"${basedirpath}/app.go"echo'---------------------------------'# -b オプションをつけても行番号を付与してくれる# この場合、空行には行番号は振られない
    cat -b"${basedirpath}/app.go"}

_exec

try-linux/with_number.sh at master · devlights/try-linux · GitHub

実行すると以下のようになります。

gitpod /workspace/try-linux $ make
ENTER EXAMPLE NAME: with_number

[INPUT ] with_number
[TARGET] cat_with_number
[SCRIPT] basic/cat/with_number.sh

===== START [basic/cat/with_number.sh]=====1  package main
     2  func main(){345      println("hello Golang")67}
---------------------------------
     1  package main
     2  func main(){3      println("hello Golang")4}===== END   [basic/cat/with_number.sh]=====

DONE

TABを可視化

-Tオプションを付けるとタブを ^Iという文字にして出力してくれます。

#!/usr/bin/env bash## cat コマンドのちょっとした Tips (タブを表示)## REFERENCES:#   - https://linuxhint.com/cat-command-linux/#_exec() {# 作業用ディレクトリ作成basedirpath=/tmp/try-linux/cat/display_tabchar
    rm-rf"${basedirpath}"mkdir-p"${basedirpath}"printf"hello\tworld\nworld\thello\n\nhello,world\n">"${basedirpath}/hello.txt"# -T オプションを付与するとタブ文字が ^I として可視化される
    cat -T"${basedirpath}/hello.txt"}

_exec

try-linux/display_tabchar.sh at master · devlights/try-linux · GitHub

実行すると以下のようになります。

gitpod /workspace/try-linux $ make
ENTER EXAMPLE NAME: display_tabchar

[INPUT ] display_tabchar
[TARGET] cat_display_tabchar
[SCRIPT] basic/cat/display_tabchar.sh

===== START [basic/cat/display_tabchar.sh]=====
hello^Iworld
world^Ihello

hello,world
===== END   [basic/cat/display_tabchar.sh]=====

DONE

行末を $ で表示

-eオプションを付けると、行末 (EOL) を $で出力してくれます。

#!/usr/bin/env bash## cat コマンドのちょっとした Tips (EOL(End Of Line)を表示)## REFERENCES:#   - https://linuxhint.com/cat-command-linux/#_exec() {# 作業用ディレクトリ作成basedirpath=/tmp/try-linux/cat/display_eol
    rm-rf"${basedirpath}"mkdir-p"${basedirpath}"printf"hello\tworld\nworld\thello\n\nhello,world\n">"${basedirpath}/hello.txt"# -e オプションを付与すると行末が $ として可視化される
    cat -e"${basedirpath}/hello.txt"}

_exec

try-linux/display_eol.sh at master · devlights/try-linux · GitHub

実行すると以下のようになります。

gitpod /workspace/try-linux $ make
ENTER EXAMPLE NAME: display_eol

[INPUT ] display_eol
[TARGET] cat_display_eol
[SCRIPT] basic/cat/display_eol.sh

===== START [basic/cat/display_eol.sh]=====
hello   world$
world   hello$
$
hello,world$
===== END   [basic/cat/display_eol.sh]=====

DONE

重複する空行を除去

-sオプションを付けると、重複する空行(空行の連続)を除去して一つにしてくれます。

#!/usr/bin/env bash## cat コマンドのちょっとした Tips (重複する空行を除去)## REFERENCES:#   - https://linuxhint.com/cat-command-linux/#_exec() {# 作業用ディレクトリ作成basedirpath=/tmp/try-linux/cat/omit_empty_line
    rm-rf"${basedirpath}"mkdir-p"${basedirpath}"

    cat << EOF> "${basedirpath}/app.go"package mainfunc main() {    println("hello Golang")}EOF# -s オプションをつけると重複している空行を除去してくれる# つまり、連続する空行を一行にしてくれる
    cat -s"${basedirpath}/app.go"}

_exec

try-linux/omit_empty_lines.sh at master · devlights/try-linux · GitHub

実行すると以下のようになります。

gitpod /workspace/try-linux $ make
ENTER EXAMPLE NAME: omit_empty_line

[INPUT ] omit_empty_line
[TARGET] cat_omit_empty_lines
[SCRIPT] basic/cat/omit_empty_lines.sh

===== START [basic/cat/omit_empty_lines.sh]=====
package main
func main(){

    println("hello Golang")}===== END   [basic/cat/omit_empty_lines.sh]=====

DONE

参考情報

linuxjm.osdn.jp

linuxhint.com


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com


Viewing all articles
Browse latest Browse all 1514

Latest Images

Trending Articles