• ベストアンサー

sortコマンドのオプションなどの意味

シェルスクリプトに次のようなsortコマンドが出てきました。 sort -t, /export/home1/aaa -u -k 1 -o $CSV_OUTFILE/$OUTPUT_FILE \     $CSV_OUTFILE/$INPUT_FILE_AAA $CSV_OUTFILE/$INPUT_FILE_BBB (aaaとAAAとBBBは変えていますが、あとはまったくもとのままです。) 行の最後の\は行継続の意味でよろしいでしょうか。 -t の直後に "," (カンマ) がありますが、これは「(空白区切りではなくて)カンマ区切り」という意味でよろしいですか。 (-tとカンマの間に空白は要らないのでしょうか。カンマはシングルクォーテーションで囲まなくてよいのでしょうか。) /export/home1/aaa というディレクトリの指定がありますが、これはなんのためでしょうか。 -u は同一行は重ねて出力しないという意味でよろしいでしょうか。 (キーが同じ行は重ねて出力しないという意味ではないですよね?) -k 1 の意味がわかりません。(ソートするキーの指定?) インプットファイルの指定と思われるものが2つありますが、入力ファイルは複数でも構わないのでしょうか? 以上ですが、わかるものだけでも結構です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 100Gold
  • ベストアンサー率27% (284/1018)
回答No.1

manコマンドを使用して man sort とうてば説明が表示されます。 読んだ上で 1,3 2,2 3,1 なんていう中身のテストファイルを使ってテストされてはいかがでしょう。 UNIXのコマンドは実装によって挙動がことなる場合がありますから。 -kは並べ替えをするフィールドの指定です。 -k 1の場合は先頭のフィールドなので体制に影響ありません。 あとはだいたいご自分で推測されているとおりです。

noname#3122
質問者

お礼

ご回答ありがとうございました。 私の環境では以下のようでした。 -tと區切り文字の間に空白があってもなくても同じ。 區切り文字をシングルクォーテーションやダブルクォーテーションで圍っても圍わなくても同じ。 -k 1   先頭フィールドをソートのキーとする(+0と同じ。) -u   同一「行」を重ねて出力しない。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

manが日本語に翻訳されたJMのページがありますので、確認して下さい。

参考URL:
http://www.linux.or.jp/JM/html/GNU_textutils/man1/sort.1.html
noname#3122
質問者

お礼

ご回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • sortコマンドについて

    ファイルaaaについて、 第1ソートキーを第1列目で数値順に 第2ソートキーを第2列目でアルファベット順に ソートした結果をbbbに出力したいと思います。 sort -n -k 1,1 -d -k 2,2 aaa > bbb としたところ、正しい結果が得られませんでした。 どのようにしたら良いのか教えて下さい。

  • コマンドプロンプトの警告について

    windows7のコマンドプロンプトで表示される警告について質問です。 コマンドプロンプトで以下のコマンドを実行しました。 sort /+10 < aaa.csv > bbb ※「aaa.csv」のデータ量は200万行ぐらいです その際、以下のような警告がでましたが、どのような意味なのでしょうか? また、「sort」処理は正常に終わっているのでしょうか? "警告: 通常、大きな並べ替えのリダイレクト入力の使用は並べ替えられる入力ファイルを直接指定するよりも遅くなります。" よろしくお願いします。

  • URLに付く [ ] を外したい

    現在稼働中のWebシステムの保守を担当しています。 先日、お客様から「URLに付いている [ ] を消して欲しい」との依頼がありましたが、 やり方が分からず、困っております。 現在、 xxx/aaa[]/1,2,3/bbb[]/1,2,3/ このようになっているURLを xxx/aaa/1,2,3/bbb/1,2,3/ に変更したいという依頼です。 現在、以下のようなフォームがあり <form action="xxx.php" method="GET"> <input type="checkbox" name="aaa[]" value="1"> <input type="checkbox" name="aaa[]" value="2"> <input type="checkbox" name="aaa[]" value="3"> <input type="checkbox" name="bbb[]" value="1"> <input type="checkbox" name="bbb[]" value="2"> <input type="checkbox" name="bbb[]" value="3"> </form> このフォームを送信するとURLは以下のようになりますが、 xxx.php?aaa[]=1,2,3&bbb[]=1,2,3 これを .htaccess で xxx/aaa[]/1,2,3/bbb[]/1,2,3/ というように書き換えています。 このURLを、 xxx/aaa/1,2,3/bbb/1,2,3/ に変更することはできますでしょうか? html、.htaccess、php、どの部分が改修になっても構いません。 [ ] を削除したいという理由としては、 インターネットの広告を出すときに、広告登録フォームでURLがエラーになるから、ということでした。 広告登録フォームでURLがエラーにならなければ良いのかと思い、 xxx/aaa%5b%5d/1,2,3/bbb%5b%5d/1,2,3/ というように [ ] の部分をURLエンコードする方法をお伝えしましたが、%が付くのもダメということでした。 xxx/aaa_0/1/aaa_1/2/aaa_2/3/bbb_0/1/bbb_1/2/bbb_2/3/ というように カンマ区切りじゃなくなるのも嫌だそうです。 あくまで xxx/aaa/1,2,3/bbb/1,2,3/ の形が良いとのことでした。

  • CSVファイルの読み込み

    使用ソフト:Microsoft Visual Basic 2005 Express Edition csvファイル(カンマ区切り)で一列目(aaaの部分)を表すにはどうしたらよいのでしょうか? aaa,bbb,ccc

  • ファイルの結合

    UNIX上で下記のようなfileA、fileBから fileA aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 fileB aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 下記のようなfileCを作ろうとしています。 fileC aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 aaa,ddd,999 そこで、以下のように一列目と2列目をキーにして、sortすることにしました。 cat fileA fileB | sort -u -k1,2 -t, > fileC すると、fileCは下記のようになりました。(一行目の3列目が222ではなく、111になってしまいました) fileC aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 キー項目以外はfileAを優先させたいのですが、なにか良い方法はないでしょうか?

  • テーブル結合の方法でのパフォーマンス

    テーブルを結合する順番でパフォーマンスが違ってくるものなんでしょうか。 FROM aaa, bbb aとbの順番を入れ替えるだけでパフォーマンスが変ることってあるんですかね。 また、カンマ(,)で結合を指定するよりSTRAIGHT_JOIN指定したほうが速いとか。 SELECT aaa.x, bbb.y FROM aaa, bbb; SELECT aaa.x, bbb.y FROM aaa STRAIGHT_JOIN bbb; おねがいします。

    • ベストアンサー
    • MySQL
  • 複数bashスクリプトの定数?の共通化

    たとえば以下のように A.bash、B.bash、C.bash の3つのbashスクリプトがあるときに それぞれの先頭で export OutFile=/aaa/bbb/ccc.txt と設定していたとします このとき、 何らかの事情で以下のよう export OutFile=/aaa/ggg/ccc.txt 変えなければならなくなった時に、 じか書きしている場合3ファイルとも 編集しなくてはいけません そうではなくて A.bash、B.bash、C.bashの3スクリプトの先頭で 設定ファイルを読み込んで export OutFile=/aaa/bbb/ccc.txt を取得するようにし、以下のように変更が発生した 場合も、 export OutFile=/aaa/ggg/ccc.txt 設定ファイルひとつだけ編集すればいいように したいのですが、そのようなことはできるのでしょうか? 説明べたでわかりにくいかも知れませんがお願いします。

  • エクセルのCSV(カンマ区切り)保存について教えてください

    次のようなEXCELデータをCSV(カンマ区切り)で保存した際に項目(カンマ)を2つ追加できるでしょうか? EXCEL  セルA1:AAA  セルB1:BBB  セルC1:  セルD1:CCC  セルE1:  セルF1: このデータをCSV保存してTEXTで確認すると、  AAA,BBB,,CCC となりますが、これを  AAA,BBB,,CCC,, としたいのですが、セルE1とセルF1がNULLのためカンマ区切りができません。半角スペースなどをいれるしかないのでしょうか? できればセルE1とセルF1には何も入力したくないのですが。良い方法がありましたら教えてください。

  • SQLPLUSにて演算子を使う方法と条件文を使いたい・・

    以下のようにspoolコマンドにてselectの結果をCSVに出力したいのですが、カンマ区切りしたいため連結していますがエラーが発生します。 spool aaa.csv select AAA || ',' || BBB || ',' ||   CCC - DDD || ',' || EEE from table_A ・・・ そうすると、引き算が引っかかっているらしく、 「ORA-01722:数値が無効です」エラーが発生します。 連結をやめて、「|| ',' ||」→「,」にすれば正常に終了します。 連結の場合に演算子を使うにはどのようにすればよいのでしょうか? また、例えば「AAA<0」の場合には、BBBに100を掛けるとかのような 他カラムでの条件により、別カラムの計算結果を変えるといったことは 可能なのでしょうか? よろしくお願い致します。

  • CSVファイルのエクスポートでソートしたい

    ACCESS VBAで DoCmd.TransferText acExportDelim, , "テーブル名", CSV_File_Full_Path でCSVファイルのエクスポートを行っていますが、 エクスポートするテーブルの任意の複数項目でソートして出力する方法はあるのでしょうか? 現在はテーブルの表示順と異なった出力がされています。