SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

業務でラクするためのUNIXテクニック集

cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす!
~業務でラクするためのUNIXテクニック~

第3回 「並べ替え」編

  • X ポスト
  • このエントリーをはてなブックマークに追加

ファイル内文字列の結合

pasteコマンド

 pasteコマンドは、2つのファイルを行単位で結合します。利用方法は次のようになります。

pasteコマンドの基本文法
$ paste [オプション] [ファイル名]
※注2

FreeBSDなどでは、ファイル名に「-」を指定した場合のみ、標準入力から読み込みます(GNU pasteでは、ファイル名が与えられない場合にも、標準入力から読み込みます)。

 主なオプションは次のとおりです。

pasteコマンドの主なオプション
オプション 説明
-d 区切り文字を指定する(デフォルトはタブ)
-s 1つのファイルの各行を1行に連結できます
例)2つのファイルの内容を結合して出力する

 次のようなファイルに対して、pasteコマンドを適用してみます。

file1の内容
$ cat file1
3, 8
5, 12
1, 3
file2の内容
$ cat file2
30, 2
4, 8
5, 9
2つのファイルを行単位で結合する場合
$ paste file1 file2
3, 8    30, 2
5, 12   4, 8
1, 3    5, 9
2つのファイルの内容を順番に出力する場合
$ paste -s -d '\n' file1 file2
3, 8
5, 12
1, 3
30, 2
4, 8
5, 9

 「-s」オプションで1行に連結、「-d '\n'」オプションにより改行を区切り文字にすることで、ファイルの内容を順番に出力しています(cat file1 file2と同じ働きです)。

 なお、「> ファイル名」と指定することで、指定したコマンドの実行結果をファイルに書き込めます。

例)コマンドの実行結果をfile3に書き込む
$ paste -s -d '\n' file1 file2 > file3
例)lsコマンドの結果を3列で表示する
$ ls | paste - - -
a.txt b.txt c.txt
d.txt e.txt f.txt

次のページ
ファイル内文字列のソート

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
業務でラクするためのUNIXテクニック集連載記事一覧

もっと読む

この記事の著者

保田和隆(ヤスダカズタカ)

Yasuda Kazutakaネットワーク関連の組み込みソフトウェア開発者。http://uguisu.skr.jp/Windows/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3643 2009/05/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング