漫画『酒男子』のAIボットを作ると高級日本酒が当たる!! >>

はじめまして、UNIXのsortコマンドについて質問です。
CSVファイルをソートする際、1行目がタイトル行で2行目以降をソートしたいのですがよい方法をご存知ですか?
OSはSunOSでバージョンは3.8くらいだったと思います。
よろしくお願いします。

A 回答 (2件)

最初の行を切り取りたいということであれば



sed -n -e '2,$p' csv.txt | sort

とか

sed -e '1d' csv.txt | sort

なんてのも。
    • good
    • 0
この回答へのお礼

返事が遅くなり、申し訳ありませんでした。
うまくできました。ありがとうございます。

お礼日時:2006/07/19 22:27

ファイルが100行だとすると


% tail -n 99 | sort
でいいんじゃないでしょうか
    • good
    • 0
この回答へのお礼

返事が遅くなり申し訳ありませんでした。
どうもありがとうございました。

お礼日時:2006/07/19 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q第一章→第一節・・・その次は?

よく目次で
第一章○○○
 第一節△△△
 第二節□□□
第二章◇◇◇~
とありますよね?その第一節をさらに分けたい場合、第一何となるのでしょうか。
ご存知の方よろしくお願いします。

Aベストアンサー

たまたま手元に「公用文作成の手引き」という冊子があります。
役所で使用する文書規定の本です。

これによると、章、節、項までは皆さんのおっしゃる通り。

さらに、「項目を細別する見出し符号は以下による。」とあります。

第一章 第二章・・・
 第一節 第二節・・・
  第一項 第二項・・・
   第1 第2
    1 2 3
     (1) (2) (3)
      ア イ ウ
       (ア) (イ) (ウ)
        A B C
         (A) (B) (C)
          a b c
          (a) (b) (c)

注1:「第1」を省略して「1」からはじめても良い。
注2:「イ」「ロ」「ハ」「ニ」は用いない。


以上のように書いてありました。
しかし、何にせよ法律で決まっているわけでもないし、通常は
自分の好みで選択して、問題ないと思います。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Qgrepで検索文字列が完全一致した行だけ取り出す方法

grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか?

通常は
grep hoge hoge.txt

と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。

例えばhoge.txtの中に
cc ghoge
kkl hogem
jjll hoge
という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。

何かよい方法があれば教えてください

Aベストアンサー

-w オプションじゃだめですか?

参考URL:http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

Qawkを用いて、特定の文字を含む以下の行を抜き出す

件名にあるように
awkを用いて、特定の文字を含む以下の行を抜き出したいのですが
どのようにしたらよいでしょうか?

具体的には
#cat text
aaaa
bbb ccc
<exe> aa
xxxxx vvvv
・・・

というようなファイルtextがあるとき
<exe> 以下の行すべてを抜き出したいです。
ご教授お願いします。

Aベストアンサー

awk '/<exe>/,0' text

でいけるかと。
<exe> が第一フィールドにあるときだけとかいう
条件があるなら

awk '$1~/<exe>/,0' text

Q○行目から□行目だけを表示するコマンド

テキストファイルの中から、10行目から20行目のみを表示するようなコマンドがあれば教えてください。
CATやMOREのようなコマンドにオプションで行数を指定して指定した行数だけを見ることは可能でしょうか?

もしコマンドで一発で無理なら、hoge.txtというファイルの10行目から20行目までを表示するような簡単なシェルの書き方を教えてください。

よろしくお願いします。

Aベストアンサー

#1です。間違いました。
awk '10 <= NR && NR <= 20' hoge.txt
でした。

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

Qsedなどで、特定の文字列の後の文字列を抽出したい

sedなどで、特定の文字列の後の文字列を抽出したい

シェルスクリプト内で、sedなどを使って特定の文字列の後の文字列を抽出したいのですが、どうすればいいでしょうか?

たとえば、abcXYZ123defghiのなかから、XYZの後の「123」を抜き出したいです。

echo abcXYZ123defghi | sed ...

のようにして実行させたいです。

Aベストアンサー

日本語対応sedだと日本語数字混じりでもできますね。

echo abcXYZ12357defghi | sed -e 's/^.*XYZ\([0-90-9]*\).*$/\1/' -e 'y/0123456789/0123456789/'
12357

※ 使っている日本語コードの指定は必要かも(例えば、 --ctype=EUC)

echo abcXYZ12357defghi | sed -e 's/^.*XYZ\([0-90-9]*\).*$/\1/'
12357

※ 入力フォームに書いている時はASCIIと日本語の判別がし易いけど回答見るとわかり難いですね。後ろの例での結果57とy/0123456789/の数字部分が日本語です。

Qテキストファイルのn行目以下を出力する方法

catコマンドか他のコマンドを使って、テキストファイルのn行目以下を出力する方法はありますか?

Aベストアンサー

蛇足っぽいですが、sedによる別解です。
(3行目以降の場合)

>sed -ne '3,$p' input.txt

Qlinuxのjoinコマンドがうまくいきません。

$ cat aaa.txt
2014年4月30日 11440
2014年4月28日 11438
2014年4月27日 11437
2014年4月26日 11436
2014年4月25日 11435
2014年4月24日 11434
2014年4月23日 11433
2014年4月22日 11432
2014年4月21日 11431
2014年4月20日 11430
2014年4月19日 11429
2014年4月18日 11428
2014年4月17日 11427
2014年4月16日 11426
2014年4月15日 11425
2014年4月14日 11424
2014年4月13日 11423
2014年4月12日 11422
2014年4月11日 11421
2014年4月10日 11420
2014年4月9日 11419

$ cat bbb.txt
2014年4月30日 264
2014年4月28日 265
2014年4月25日 265
2014年4月24日 264
2014年4月23日 263
2014年4月22日 262
2014年4月21日 263
2014年4月18日 263
2014年4月17日 261
2014年4月16日 261
2014年4月15日 259
2014年4月14日 256
2014年4月11日 256
2014年4月10日 258
2014年4月9日 256

$ join aaa.txt bbb.txt
2014年4月30日 11440 264
2014年4月28日 11438 265
join: bbb.txt:5: is not sorted: 2014年4月23日 263
join: aaa.txt:4: is not sorted: 2014年4月26日 11436
2014年4月9日 11419 256

$
となり、2014年4月25日など共通の行がjoinされません。
原因と対策をご教示いただけますでしょうか。
環境はLubuntu14.04lts-64bit、join (GNU coreutils) 8.21です。
よろしくおねがいします。

$ cat aaa.txt
2014年4月30日 11440
2014年4月28日 11438
2014年4月27日 11437
2014年4月26日 11436
2014年4月25日 11435
2014年4月24日 11434
2014年4月23日 11433
2014年4月22日 11432
2014年4月21日 11431
2014年4月20日 11430
2014年4月19日 11429
2014年4月18日 11428
2014年4月17日 11427
2014年4月16日 11426
2014年4月15日 11425
2014年4月14日 11424
2014年4月13日 11423
2014年4月12日 11422
2014年4月11日 11421
2014年4月10日 11420
2014年4月9日 11419

$ cat bbb.txt
2014年4月30日 264
2014年...続きを読む

Aベストアンサー

joinはソートしたデータを使わないとうまくいかないです。

bashだと
$ join <(sort aaa.txt) <(sort bbb.txt)

順番は変わってしまいますが、うまくできるはずです。


人気Q&Aランキング