データカットコマンドcutとデータ貼り付けコマンドpastte
9740 ワード
Windowsでは、あるファイルから別のファイルにテキストを移動することがよくあります.Linuxでこのタスクを実行するのはcutとpasteコマンドです.
一、データカットコマンドcutコマンドフォーマット: cut [option] [file] 共通オプション: b:操作するオブジェクトがバイトであることを示す.
c:操作するオブジェクトが文字であることを示します.
f:操作するオブジェクトがフィールドであることを示す.
d:フィールド区切り記号を指定し、デフォルトではタブタブタブタブです.
s:フィールド区切り記号のない行が含まれていないことを示します.このオプションは、通常、コメントなどを削除するために使用されます.
切り取り範囲の表示方法は次のとおりです.
N:Nバイト目、文字またはフィールドを表します.
N-:Nから1行の終わりまでのすべてのテキストを表します.
N-M:NからMまでのすべてのテキストを表します.
M:開始からMまでのすべてのテキストを表します.
-:開始から終了までのすべてのテキスト.
上記の範囲を表す方法に加えて、先に行をマッチングした場合のように、「N,M」のような表現方法を用いることもできる.使用例: Cutカットを使用する場合、カットしたテキストはファイルからでもパイプや他のコマンドの出力からでもかまいません.カットが完了すると、cutはほとんどのテキスト操作コマンドと同様に、既存のファイル(すなわち、既存のテキストの内容を変更しない)を操作するのではなく、結果を標準出力に直接出力します.
Cutコマンドが動作する場合、テキスト全体を動作単位で切り取ります(つまり、同じ切り取りコマンドがテキストの各行に有効になります).
(1)バイト数が算出されている場合や特殊なフォーマットを備えたテキストを切り出す場合は,オプションbを用いてバイトごとに切り出すと便利である.
たとえば、すべての学生の学生番号を切り取るには、学生ごとに10バイトの特殊なフォーマットがあります.
(2)特定のフィールドの文字の一部を切り取り、オプションcを使用します.たとえば、学生が所属する学部とクラスの番号を切り取ります.
(3)オプションfを使用して複数のフィールドを切り取ります.たとえば、すべての学生の学号、氏名、指導員を切り取ります.
1-2,4は、1,2,4番目のフィールドを切り取ることを示す.
(4)フィールド間の区切り文字がタブタブタブでない場合があります.この場合、オプションdを使用して新しいフィールド区切り文字を指定する必要があります.例:
一般に、cutコマンドの出力は、貼り付け操作を容易にするためにファイルにリダイレクトされます.
注意:cutを使用してカット操作を実行する場合、必要に応じて、通常、問題が発生した場合に検索しやすいように、レコードを一意に特定できるフィールド、たとえば学番号、シーケンス番号など、1行のシンボルフィールドを一緒にカットします.
二、データ貼り付けコマンドpaste
通常、切り取りが完了したら、切り取った内容を別のテキストに貼り付ける必要があります.この場合、データ貼り付けコマンドpasteを使用する必要があります.コマンドフォーマット: paste [option] [file…] 共通オプション: d:新しく生成されたテキストに新しいフィールド区切り記号を指定し、デフォルトはタブタブタブタブです.
s:貼り付けた内容を行にまとめる(すなわち横貼り付け).使用例:
(1)学習番号と成績を一緒に貼り付ける:
(2)指定された順序で貼り付ける場合は、関連ファイルを順番に入力します.たとえば、成績を先に貼り付けて名前を貼り付けます.
(3)横向きの貼り付けも可能であり、これは特殊な場合に有用である.例えば、学生の名前と成績を横向きに貼り付ける:
(4)pasteで貼り付ける場合、使用するファイルは2つ以上、つまり複数のファイルを同時に貼り付けることができます.複数のファイルを貼り付ける場合、各フィールドに異なる区切り文字を指定できます.
たとえば、3つのファイルを貼り付ける場合、1、2番目のフィールド間はタブで分割され、2、3番目のフィールド間は「#」で分割されます.
上のコマンドでpasteは、貼り付けを行う際に、指定したドメイン区切り記号を順に使用して、貼り付けたドメインを分割します.
(5)パイプからのテキストを処理する場合、pasteは「-」を使用してパイプからのテキストを表します.たとえば、テキストpaste 1の各行の前にシーケンス番号を付けます(シーケンス番号はファイルpsに保存されています):
注:一部のバージョンでは、cutとpasteの2つのコマンドがフィールド区切り記号でフィールドを厳密に分割します.たとえば、タブの前後にスペースがある場合、スペースもフィールドとして扱われます.したがって、切り取りと貼り付けの過程で、出力が正しいまで繰り返してファイルにリダイレクトする必要があります.
一、データカットコマンドcut
c:操作するオブジェクトが文字であることを示します.
f:操作するオブジェクトがフィールドであることを示す.
d:フィールド区切り記号を指定し、デフォルトではタブタブタブタブです.
s:フィールド区切り記号のない行が含まれていないことを示します.このオプションは、通常、コメントなどを削除するために使用されます.
切り取り範囲の表示方法は次のとおりです.
N:Nバイト目、文字またはフィールドを表します.
N-:Nから1行の終わりまでのすべてのテキストを表します.
N-M:NからMまでのすべてのテキストを表します.
M:開始からMまでのすべてのテキストを表します.
-:開始から終了までのすべてのテキスト.
上記の範囲を表す方法に加えて、先に行をマッチングした場合のように、「N,M」のような表現方法を用いることもできる.
Cutコマンドが動作する場合、テキスト全体を動作単位で切り取ります(つまり、同じ切り取りコマンドがテキストの各行に有効になります).
(1)バイト数が算出されている場合や特殊なフォーマットを備えたテキストを切り出す場合は,オプションbを用いてバイトごとに切り出すと便利である.
たとえば、すべての学生の学生番号を切り取るには、学生ごとに10バイトの特殊なフォーマットがあります.
[root@localhost test]# cut -b-10 students
2821020225
2821020115
2721020321
2921020632
2721010409
2921050313
2721030227
(2)特定のフィールドの文字の一部を切り取り、オプションcを使用します.たとえば、学生が所属する学部とクラスの番号を切り取ります.
[root@localhost test]# cut -c5-8 students
0202
0201
0203
0206
0104
0503
0302
(3)オプションfを使用して複数のフィールドを切り取ります.たとえば、すべての学生の学号、氏名、指導員を切り取ります.
[root@localhost test]# cut -f1-2,4 students_new
2821020225 Liulu Lixia
2821020115 Liumin lixia
2721020321 Xuli Luolei
2921020632 Xiayu Hetao
2721010409 Liwei tangwei
2921050313 Heli Tangwei
2721030227 Wangtao Huli
1-2,4は、1,2,4番目のフィールドを切り取ることを示す.
(4)フィールド間の区切り文字がタブタブタブでない場合があります.この場合、オプションdを使用して新しいフィールド区切り文字を指定する必要があります.例:
[root@localhost test]# cut -d# -f1-3 student0
2821020225#Liulu#Sichuan
2821020115#Liumin#Henan
2721020321#Xuli#Jiangsu
2921020632#Xiayu#Shanxi
2721010409#Liwei#Sichuan
2921050313#Heli#Xizang
2721030227#Wangtao#Yunnan
一般に、cutコマンドの出力は、貼り付け操作を容易にするためにファイルにリダイレクトされます.
注意:cutを使用してカット操作を実行する場合、必要に応じて、通常、問題が発生した場合に検索しやすいように、レコードを一意に特定できるフィールド、たとえば学番号、シーケンス番号など、1行のシンボルフィールドを一緒にカットします.
二、データ貼り付けコマンドpaste
通常、切り取りが完了したら、切り取った内容を別のテキストに貼り付ける必要があります.この場合、データ貼り付けコマンドpasteを使用する必要があります.
s:貼り付けた内容を行にまとめる(すなわち横貼り付け).
[root@localhost test]# cat paste1
2821020225
2821020115
2721020321
2921020632
2721010409
2921050313
2721030227
[root@localhost test]# cat paste2
Liulu
Liumin
Xuli
Xiayu
Liwei
Heli
Wangtao
[root@localhost test]# cat paste3
325
280
321
334
356
259
320
(1)学習番号と成績を一緒に貼り付ける:
[root@localhost test]# paste paste1 paste3
2821020225 325
2821020115 280
2721020321 321
2921020632 334
2721010409 356
2921050313 259
2721030227 320
(2)指定された順序で貼り付ける場合は、関連ファイルを順番に入力します.たとえば、成績を先に貼り付けて名前を貼り付けます.
[root@localhost test]# paste paste3 paste2
325 Liulu
280 Liumin
321 Xuli
334 Xiayu
356 Liwei
259 Heli
320 Wangtao
(3)横向きの貼り付けも可能であり、これは特殊な場合に有用である.例えば、学生の名前と成績を横向きに貼り付ける:
[root@localhost test]# paste -s paste2 paste3
Liulu Liumin Xuli Xiayu Liwei Heli Wangtao
325 280 321 334 356 259 320
(4)pasteで貼り付ける場合、使用するファイルは2つ以上、つまり複数のファイルを同時に貼り付けることができます.複数のファイルを貼り付ける場合、各フィールドに異なる区切り文字を指定できます.
たとえば、3つのファイルを貼り付ける場合、1、2番目のフィールド間はタブで分割され、2、3番目のフィールド間は「#」で分割されます.
[root@localhost test]# paste -d'\t#' paste1 paste2 paste3
2821020225 Liulu#325
2821020115 Liumin#280
2721020321 Xuli#321
2921020632 Xiayu#334
2721010409 Liwei#356
2921050313 Heli#259
2721030227 Wangtao#320
上のコマンドでpasteは、貼り付けを行う際に、指定したドメイン区切り記号を順に使用して、貼り付けたドメインを分割します.
(5)パイプからのテキストを処理する場合、pasteは「-」を使用してパイプからのテキストを表します.たとえば、テキストpaste 1の各行の前にシーケンス番号を付けます(シーケンス番号はファイルpsに保存されています):
[root@localhost test]# cat ps
1
2
3
4
5
6
7
[root@localhost test]# cat paste1 | paste -d"#" ps -
1#2821020225
2#2821020115
3#2721020321
4#2921020632
5#2721010409
6#2921050313
7#2721030227
注:一部のバージョンでは、cutとpasteの2つのコマンドがフィールド区切り記号でフィールドを厳密に分割します.たとえば、タブの前後にスペースがある場合、スペースもフィールドとして扱われます.したがって、切り取りと貼り付けの過程で、出力が正しいまで繰り返してファイルにリダイレクトする必要があります.