シェルスクリプトを書いてみる
catコマンドとは
cat(キャット、カット)コマンドは、ファイルまたは標準入力の内容を連結して標準出力に出力するコマンドのこと。catは連結を意味する"catenate"の略。
tacコマンドとは
tac(タック)コマンドは、行を逆順に出力するコマンド。catをひっくり返してtac、覚えやすいです。
revコマンドとは
rev(レヴ)コマンドは、行内をひっくり返して出力するコマンド。
基本的な使い方
catの後にファイル名をつけて使います。
cat [ファイル1] ([ファイル2] [ファイル3] ...)
例えば、basho.txtファイルの中身を表示したい場合は以下のように記述。
$ cat basho.txt
古池や
蛙飛び込む
水の音
例えば、basho.txtとshiki.txtを連結して標準出力したければ以下のように記述。
$ cat basho.txt shiki.txt
古池や
蛙飛び込む
水の音
赤とんぼ
筑波に雲も
なかりけり
-nオプションを付けるとすべての行に行番号がつきます。
$ cat -n dakotsu.txt
1 くろがねの
2
3 秋の風鈴
4
5 鳴りにけり
-bオプションを付けると空行以外に行番号がつきます。
$ cat -b dakotsu.txt
1 くろがねの
2 秋の風鈴
3 鳴りにけり
tacコマンドを使うと逆順に表示されます。
$ tac basho.txt
水の音
蛙飛び込む
古池や
tacはパイプで連結してもOK。
$ cat -b basho.txt | tac
3 水の音
2 蛙飛び込む
1 古池や
revコマンドで行内の文字を逆順に出力できる。
cat basho.txt | rev
や池古
む込び飛蛙
音の水
cat,tac,revを全て使用するとbasho.txtが以下のようになります。
$ cat basho.txt | tac | rev
音の水
む込び飛蛙
や池古
ヘルプ
cat
$ cat --help
使用法: cat [オプション]... [ファイル]...
ファイル、または標準入力を連結し、標準出力に出力します。
-A, --show-all -vETと同じ
-b, --number-nonblank 空行を除いて行番号を付け加える。-n より優先される
-e -vEと同じ
-E, --show-ends 行の最後に $ を付け加える
-n, --number 全ての行に行番号を付け加える
-s, --squeeze-blank 連続した空行の出力を抑止する
-t -vTと同じ
-T, --show-tabs TAB文字を`^I'で表示
-u (無視)
-v, --show-nonprinting 非表示文字と`^'や`^'を付けて表示 (LFDとTABは除く)
--help この使い方を表示して終了する
--version バージョン情報を表示して終了する
ファイルの指定がなかったり, - であった場合, 標準入力から読み込みます.
例:
cat f - g 最初に f の中身を出力し、次に標準入力を出力します。
そして g の中身を出力します。
cat 標準入力を標準出力に複製します。
cat のバグを発見した場合は bug-coreutils@gnu.org に報告してください。
GNU coreutils のホームページ: <http://www.gnu.org/software/coreutils/>
GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>
cat の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'cat invocation' を実行してください。
tac
$ tac --help
使用法: tac [オプション]... [ファイル]...
Write each FILE to standard output, last line first.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-b, --before 区切り文字列をレコード後ろではなく前に付加する
-r, --regex 区切り文字列を正規表現として解釈する
-s, --separator=STRING 改行文字の代わりに STRING を区切り文字列にする
--help この使い方を表示して終了する
--version バージョン情報を表示して終了する
tac のバグを発見した場合は bug-coreutils@gnu.org に報告してください。
GNU coreutils のホームページ: <http://www.gnu.org/software/coreutils/>
GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>
tac の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'tac invocation' を実行してください。
rev
$ rev --help
Usage: rev [options] [file ...]
Options:
-V, --version output version information and exit
-h, --help display this help and exit
For more information see rev(1).