Amazon Elastic Compute Cloud (Amazon EC2) を使用して Ubunutu Linux インスタンスをすばやく作成して接続する手順を完了しており、Linux コマンドシェルへのアクセス権限があります。テキストを操作するための主要ユーティリティに関する情報が見つかる場所を教えてください。

Linux には、ファイル管理、システム管理、セキュリティ、ストレージなど用に 100 以上の「主要」ユーティリティが含まれています。Linux ディストリビューションに含まれている主要ユーティリティは、Richard Stallman 氏が 1983 年に始めた「free software GNU Operating System」運動の成果です。GNU ソフトウェアは、Unix システムで動作するように設計されているため、ほとんどの Linux ディストリビューションで利用可能です。

この記事では、Ubuntu 14.04 以降で利用可能な GNU テキストユーティリティの概要を示します。ここで説明している主要ユーティリティは、http://www.gnu.org のオンライン man(マニュアル)ページにリンクされています。

注意: Amazon EC2 Linux インスタンスで利用可能な GNU ファイルユーティリティの詳細情報を入手するには、以下のいずれかのコマンドを使用してください。

     --help - ユーティリティの引数を表示します。

     info - ユーティリティに関する一般情報を表示します。

     man - ユーティリティのマニュアルページを表示します。

以下のリストでは、Ubuntu Linux で利用可能な GNU テキストユーティリティの概要を示しています。

base64 - ファイルまたは標準入力から読み込まれたデータを、base64 でエンコードされた形式に変換します。

$ cd #switch to home directory

$ echo 'VGhpcyBpcyBhIHRlc3QK' > base64test #create encoded file

$ cat base64test #display base64 encoded ASCII

VGhpcyBpcyBhIHRlc3QK

$ base64 –d base64test #decode base64 encoded ASCII and display

This is a test

$ rm base64test #clean up

cat - 1 つまたは複数のファイルの内容を表示します。

$ cd #switch to home directory

$ echo 'test1' > cat1 #create file cat1

$ echo 'test2' > cat2 #create file cat2

$ cat cat1 cat2 #display contents of cat1 and cat2

test1

test2

$ rm cat1 cat2 #clean up

cksum - CRC チェックサム、バイト数、指定したファイルの名前を表示します。

$ cd #switch to home directory

$ echo 'cksum1' > cksum1 #create file cksum1

$ echo 'cksum2' > cksum2 #create file cksum2

$ cksum cksum1 cksum2 #display CRC checksum, bytes, filenames

2980702885 7 cksum1

3015712556 7 cksum2

$ rm cksum1 cksum2 #clean up

comm - 2 ソートされたファイルを比較します。デフォルトでは、3 列の出力が生成されます。最初の列には、file1 に固有の行が含まれ、2 列目には file 2 に固有の行が含まれ、3 列目には両方のファイルの行が含まれます。列はタブ文字で区切られます。

$ cd #switch to home directory

$ printf "a\nb\nc\n" > commtest1 # create sorted file commtest1

$ printf "a\nb\nd\n" > commtest2 # create sorted file commtest2

$ comm commtest1 commtest2

                a

                b

c

        d

$ rm commtest1 commtest2 #clean up

csplit - 分割の基準に基づいてファイルを個別のファイルに分割します。

$ cd #switch to home directory

$ mkdir csplit && cd csplit #create and switch to subdirectory

$ seq 9 | csplit - '/[5]$/' '{*}' #split on lines ending in 5

8     #size in bytes

10    #size in bytes

$ ls  #list output files

xx00 xx01

$ head xx* #use head to print file contents

==> xx00 xx01 <==

5

6

7

8

9

$ cd #switch to home directory

$ rm –r csplit #clean up

cut - 入力ファイルの各行の選択された部分を表示します。

$ cd #switch to home directory

$ printf "line1:first line\nline2:second\nline3,third\n" > cutme

$ cat cutme #display contents of file

line1:first line

line2:second

line3,third

$ cut –d: -f 1 -s cutme #print first field of : delimited lines

line1

line2

$ cut –d: -f 1-2 –s cutme #print both fields of : delimited lines

line1:first line

line2:second

$ cut –d, -f 1-2 –s cutme #print both fields of , delimited lines

line3,third

$ cut –c 1-5 cutme #print characters 1-5 of every line

line1

line2

line3

$ rm cutme #clean up

expand - タブをスペースに変換します。-t スイッチがない場合、デフォルトでは 8 スペースになります。

$ cd #switch to home directory

$ printf "line1\tfirst\nline2\tsecond\nline3\tthird\n" > expandme

$ expand expandme #expand with default tabs (8 spaces)

line1   first

line2   second

line3   third

$ expand –t 20 expandme #expand tabs to 20 spaces

line1               first

line2               second

line3               third

$ expand –t 1 expandme #expand tabs to 1 space

line1 first

line2 second

line3 third

$ rm expandme #clean up

fmt - 段落テキストを整形します。

$ cd #switch to home directory

$ printf "First line.\t\tSecond line.\nThird line! \n" > fmtme

$ cat fmtme

First line.             Second Line.

Third line!

$ fmt fmtme #format using defaults

First line.             Second Line  Third line!

$ fmt –u fmtme #format with uniform word spacing.

First line.  Second line.  Third line!

$ rm fmtme #clean up

fold - 指定した幅に合わせて入力行を折り返します。

$ cd #switch to home directory

$ printf "This line of text iscut in two with fold\n" > foldme

$ cat foldme #display file contents

This line of text iscut in two with fold

$ fold –w 20 foldme #fold using a width of 20 columns

This line of text is

cut in two with fold

$ rm foldme #clean up

head - 指定したファイルの先頭 n 行を印刷します。n に値を指定しない場合、ファイルの先頭 10 行を表示します。

$ cd #switch to home directory

$ printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n" > headme

$ cat headme

1

2

3

4

5

6

7

8

9

10

11

$ head headme #print first 10 lines (default)

1

2

3

4

5

6

7

8

9

10

$ head –n 5 headme #print first 5 lines

1

2

3

4

5

$ rm headme #clean up

md5sum - md5 チェックサムの数値を作成します。

$ cd #switch to home directory

$ printf "This is a test\n" > md5me #create file

$ md5sum md5me > md5memd5sum #create checksum

$ cat md5memd5sum #display checksum of file

ff22941336956098ae9a564289d1bf1b md5me

$ md5sum –c md5memd5sum #verify checksum of file

md5me: OK

$ rm md5memd5sum #clean up

nl テキストに行番号を追加します。

$ cd #switch to home directory

$ printf "line one\nline two\nline three\n" > nlme #create file

$ cat nlme #display file contents

line one

line two

line three

$ nl nlme #display file contents with leading numbers

     1  line one

     2  line two

     3  line three

$ rm nlme #clean up

numfmt - 指定した形式に数値を変換します。

$ cd #switch to home directory

$ numfmt --to=si 100000

100K

$ numfmt --to=iec 100000

98K

$ numfmt --from=si 100K

100000

$numfmt –-from=iec 100K

102400

od - 8 進数、10 進数、その他の形式で指定したファイルのダンプを表示します。

$ cd #switch to home directory

$ printf "line 1\nline 2\nline three\t end\n" > odme #create file

$ cat odme #display file contents

line 1

line 2

line 3     end

$ od –c odme #dump printable single byte characters

0000000  l  i  n  e     1 \n  l  i  n  e     2 \n  l  i

0000020  n  e     t  h  r  e  e \t  e  n  d \n

0000035

$ rm odme #clean up

paste - 複数のファイルの行をマージして表示します。

$ cd #switch to home directory

$ printf "1\n2\n3\n" > pastenum   #create file to be merged

$ printf "a\nb\nc\n" > pastealpha #create file to be merged

$ head paste* #display contents of files

==> pastealpha pastenum <==

1

2

3

$ paste pastenum pastealpha #merge and display lines

1       a

2       b

3       c

$ rm pastenum pastealpha #clean up

ptx - 指定したファイルの並べ替えられたインデックスを表示します。

$ cd #switch to home directory

$ printf "1\n3\n2\nb\na\nc\n" > ptxme #create file

$ cat ptxme #display file contents

1

3

2

b

a

c

$ ptx ptxme #display permutated index of ptxme

          1 3 2 b  a c

            1 3 2  b a c

        1 3 2 b a  c

$ rm ptxme #clean up

pr - 指定したファイルを印刷に合わせて準備します。

$ cd #switch to home directory

$ printf "line 1\nline 2\nline three\tend\n" > prme #create file

$ cat prme #display file contents

line 1

line 2

line three      end

$ pr –h "Header" prme > prmed #prepare prme for printing as prmed

$ head prmed #display paginated file with header

 

2016-02-16 12:15                    Header                    Page 1

 

line 1

line 2

line three      end

$ rm prme prmed #clean up

sha1sum - sha1 チェックサムの数値を作成します。

$ cd #switch to home directory

$ printf "This is a test\n" > sha1me #create file

$ sha1sum sha1me > sha1mesha1sum #create checksum

$ cat sha1mesha1sum #display checksum of file

3c1bb0cd5d67dddc02fae50bf56d3a3a4cbc7204 sha1me

$ sha1sum –c sha1mesha1sum #verify checksum of file

sha1me: OK

$ rm sha1me sha1mesha1sum #clean up

shuf - 入力行の順列をシャッフルしてランダムに表示します。

$ cd #switch to home directory

$ shuf –e a b c d #echo shuffled output to display

b

a

c

d

sort - 指定したファイルの内容ソートて表示します。

$ cd #switch to home directory

$ printf "5\n3\n1\n4\n2\n" > sortme

$ cat sortme #display contents of file

5

3

1

4

2

$ sort sortme #display contents of sorted file

1

2

3

4

5

$ rm sortme #clean up

split - 指定した出力ファイル数にファイルを分割します。

$ cd #switch to home directory

$ mkdir split && cd split #create and switch to subdirectory

$ seq 10 | split –l 5 #pipe seq 10 to 2 five-line files

$ head x* #display file contents

==> xaa xab <==

6

7

8

9

10

$ cd #switch to home directory

$ rm –r split #clean up

sum - CRC チェックサム、ブロック数(小数点以下切り上げ)、指定したファイルの名前を表示します。

$ cd #switch to home directory

$ echo 'sum1' > sum1 #create file sum1

$ echo 'sum2' > sum2 #create file sum2

$ sum sum1 sum2 #display checksum, blocks, filenames

36947      1 sum1

04180      1 sum2

$ rm sum1 sum2 #clean up

tac - ファイルの行を逆順に表示します。

$ cd #switch to home directory

$ printf "1\n2\n3\n4\n5\n" > tacme

$ cat tacme #display contents of file

1

2

3

4

5

$ tac tacme #display contents of file, lines in reverse order

5

4

3

2

1

$ rm tacm #clean up

tail - 指定したファイルの末尾 n 行を表示します。n に値を指定しない場合、ファイルの末尾 10 行を表示します。

$ cd #switch to home directory

$ printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n" > tailme

$ cat tailme

1

2

3

4

5

6

7

8

9

10

11

$ tail tailme #print last 10 lines (default)

2

3

4

5

6

7

8

9

10

11

$ tail –n 5 tailme #print last 5 lines

7

8

9

10

11

$ rm tailme #clean up

tr - 文字を変換/圧縮/削除します。

$ cd #switch to home directory

$ echo lowertoupper | tr a-z A-Z #translate lower to upper

LOWERTOUPPER

$ echo abcdef | tr –d abc #delete specified characters

def

tsort - 指定した入力にトポロジカルソートを実行し、標準出力に結果を送ります。

$ cd #switch to home directory

$ tsort 1 2 3  #each character followed by a space

> 4

> 5 6

> 2 3 4 5

> EOF

1

2

3

4

5

6

unexpand - タブをスペースに変換します。

$ cd #switch to home directory

$ printf "line  1\nline   2\nline    3\n" > unexpandme

$ unexpand –t 1 unexpandme #converts spaces into –t columns

line    1

line            2

line                    3

$ rm unexpandme #clean up

uniq - 指定したファイル内の繰り返し行をフィルタして除外します。

$ cd #switch to home directory

$ printf "line1\nline1\nline 1\nline2\nline2\n" > uniqme

$ cat uniqme #display file contents

line1

line1

line 1

line2

line2

$ uniq uniqme #filter repeated lines in file and display

line1

line 1

line2

$ rm uniqme #clean up

wc - ファイルのバイト数、文字数、単語数、改行数をカウントします。デフォルトでは改行数、単語数、バイト数を表示します。

$ wc /home/user1/.bash_profile

 15  51 371 /home/user1/.bash_profile

Linux, 主要ユーティリティ, GNU, coreutils, シェル


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。