MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Linuxコマンド - cutのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Linuxコマンド - cut
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == cutコマンドとは、ファイルを読み込み、それぞれの行から指定した部分だけを切り出すコマンドである。<br> ファイルを指定しない場合は、標準入力から受け取った内容を処理する。<br> <br> 例えば、"3文字目から10文字目"を取り出したり、タブ等で区切られたファイルから1番目のフィールドと3番目のフィールドと取り出すことができる。<br> <br> cut -d <区切り文字> -f <フィールド番号> <ファイル名> <br><br> == cutコマンドのオプション == cutコマンドのオプションは、下表の通りである。<br> <br> <center> {| class="wikitable" |+ その他のオプション |- ! オプション名 !! 意味 |- | -d <区切り文字><br>--delimiter=<区切り文字> || フィールドの区切り文字として、<br>タブの代わりに使用する区切り文字を指定する。(1文字のみ) |- | --output-delimiter=文字列 || 出力の区切り文字として使用する文字列を指定する。<br>(1文字以上が使用可能。デフォルトでは入力の区切り文字を使用) |- | -s<br>--only-delimited || 区切り文字を含まない行を出力しない。 |- | --complement || 出力指定した箇所以外を出力する。 |} </center> <br> <center> {| class="wikitable" |+ 出力指定オプション(いずれか1つを必ず指定) |- ! オプション !! 意味 |- | -b <出力リスト><br>--bytes=<出力リスト> || 切り出す位置のリストをバイト数で指定する。 |- | -c <出力リスト><br>--characters=<出力リスト> || 切り出す位置のリストを文字数で指定する。 |- | -f <出力リスト><br>--fields=<出力リスト> || 切り出す位置のリストをタブ区切りのフィールドで指定する。<br>区切り文字は、-dオプションで変更可能) |} </center> <br> <center> {| class="wikitable" |+ 出力リストの指定方法 |- ! 指定方法 !! 意味 |- | N || N番目のバイト、文字、フィールド(先頭のフィールド番号を1とする) |- | N-M || N番目からM番目まで |- | N- || N番目から行末まで |- | -M || 先頭からM番目まで |} </center> <br><br> == 文字数を指定して切り出す == cutコマンドは、ファイルまたは標準入力から受け取った内容に対して、各行から指定した部分だけを出力する。<br> N文字目からM文字目、先頭からN文字目、N文字目以降等の指定ができる。<br> <br> 以下の例では、ファイルから各行の先頭10文字のみ出力する場合、以下のようなコマンドとなる。<br> # バイト単位での指定 cut -b 1-10 <ファイル名> # 文字数での指定 cut -c 1-10 <ファイル名> <br> <u>※注意点</u><br> <u>Shift JISやEUC-JPでは、"あいうえお"の5文字は10バイトであるが、</u><br> <u>UTF-8では、日本語部分は1文字が3バイトであるので、"あいうえお"は15バイトとなる。</u><br> <br> また、区切り文字をカンマ等にすることで、複数指定することができる。<br> <br> 以下の例では、"1byte目〜10byte目、47byte目以降"を出力している。<br> cut -b 1-10,47- <br> 以下の例では、"1文字目〜10文字目、47文字目以降"を出力している。<br> cut -c 1-10,47- <br> 以下の例では、<code>ls -l</code>コマンドの結果から、ファイルの種類とパーミッションを示す先頭の10byte、ファイル名を示す47byte目以降を出力している。<br> ls -l * | cut -b 1-10,47- <br><br> == フィールドを指定して切り出す == 固定長ではなく、カンマやタブで区切られているファイルに対して、<br> N番目のフィールドを指定する場合は、-fオプションを使用する。<br> <br> デフォルトの区切り文字は、タブである。<br> 区切り文字を変更する場合は、-dオプションまたは--delim=オプションで指定する。<br> <br> 以下の例では、/etc/passwdファイルの1番目のフィールドと7番目のフィールドを出力している。<br> /etc/passwdファイルはセミコロンでフィールドが区切られており、1番目はユーザ名、7番目はログインシェル名となっている。<br> cut -d ":" -f 1,7 /etc/passwd <br><br> == 出力の区切り文字を変更する == 出力の区切り文字は、<code>--output-delimiter=</code>オプションで変更できる。<br> また、出力側の区切り文字の文字数は自由である。<br> cut -d ":" -f 1,7 --output-delimiter=" --- " /etc/passwd <br><br> == cutコマンドを使用したフィルタリング == ==== 特定のフィールドを切り出す ==== テキストファイル等からNフィールド目を切り出す処理やN〜Mフィールド目を切り出す処理等は、<code>cut</code>コマンドを使用する。<br> <br> 以下の3つの例では、<code>cut</code>コマンドの<code>-d</code>オプションを付加して、特定のフィールドを切り出している。<br> <br> Nフィールド目を切り出す。<br> cut -d'デリミタ' -f<N> <br> Nフィールド目とMフィールド目を切り出す。<br> cut -d'デリミタ' -f<N>,<M> <br> N〜Mフィールド目を切り出す。<br> cut -d'デリミタ' -f<N>-<M> <br> フィールド間の区切り文字となるデリミタと、切り出すフィールド番号を指定することにより、<br> 指定したデリミタによって区切られた特定のフィールドを切り出すことができる。<br> <br> デリミタを指定しない場合は、標準でタブが区切り文字として使用される。<br> また、デリミタに,(カンマ)を指定して、CSVファイルから特定のフィールドを切り出す処理を簡単に行うことができる。<br> <br> スペース区切りの2フィールド目を切り出す。<br> cut -d' ' -f2 echo 'field1 field2 field3 field4 field5' | cut -d' ' -f2 field2 <br> カンマ区切りの1フィールド目と3フィールド目を切り出す。<br> cut -d',' -f1,3 echo "field1,field2,field3,field4,field5" | cut -d"," -f1,3 field1,field3 <br> カンマ区切りの2フィールド目から4フィールド目を切り出す。<br> cut -d',' -f2-4 echo "field1,field2,field3,field4,field5" | cut -d"," -f2-4 field2,field3,field4 <br> カンマ区切りの3フィールド目以降を切り出す。<br> cut -d',' -f3- echo "field1,field2,field3,field4,field5" | cut -d"," -f3- field3,field4,field5 <br> タブ区切りの2フィールド目から5フィールド目を切り出す。<br> <code>cut</code>コマンドは、標準でタブがデリミタとして使用されるため、タブを区切り文字に使用する場合は<code>-d</code>オプションを省略する。<br> cut -f2-5 echo -e "field1\tfield2\tfield3\tfield4\tfield5" | cut -f2-5 field2 field3 field4 field5 <br> ==== 特定の位置の文字を切り出す ==== テキストファイル等からN文字目の文字を切り出す処理やN〜M文字目の文字を切り出す処理等は、<code>cut</code>コマンドを使用する。<br> <br> 以下の3つの例では、<code>cut</code>コマンドの<code>-c</code>オプションを付加して、特定の位置の文字を切り出す。<br> <code>cut</code>コマンドに切り出す文字の位置を指定することで、文字列の中から特定の位置の文字のみを切り出すことができる。<br> <br> N文字目の文字を切り出す。<br> cut -c<N> <br> N文字目とM文字目の文字を切り出す。<br> cut -c<N>,<M> <br> N〜M文字目の文字を切り出す。<br> cut -c<N>-<M> <br> 3文字目を切り出す。<br> cut -c3 echo "1234567" | cut -c3 3 <br> 1文字目と3文字目を切り出す。<br> cut -c1,3 echo "1234567" | cut -c1,3 13 <br> 2〜4文字目を切り出す。<br> cut -c2-4 echo "1234567" | cut -c2-4 234 <br> 3文字目以降を切り出す。<br> cut -c3- echo "1234567" | cut -c3- 34567 <br><br> __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]
Linuxコマンド - cut
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse