1

受け取る出力は次のようになります。

2013-08-05-Mon 10:17:00 type1   0.190476190476
2013-08-05-Mon 10:17:00 type1   0
2013-08-05-Mon 10:17:00 type2   0.1
2013-08-05-Mon 10:17:00 type2   -0.2

この出力を取得するには、送信しますhead -3 Tweets/FlumeData.txt | python sentimentMapper

それらを並べ替えるにはhead -3 Tweets/FlumeData.txt | python sentimentMapper| 並べ替え -k3`

これは現在、3 番目の列でデータを並べ替えているため、すべてのtype1、次にすべてのtype2. 理想的には、データをアルファベット順に並べ替え、次に数値順に並べ替えます (つまり、すべてのtype1値を最小値から最大値に並べ替え、次にすべてtype2最小値から最大値に並べ替えます)。

私は試しましsort -k3 -k4nたが、役に立ちませんでした。どうすればこれを解決できますか?

編集:理想的な出力:

2013-08-05-Mon 10:17:00 type1   0
2013-08-05-Mon 10:17:00 type1   0.190476190476
2013-08-05-Mon 10:17:00 type2   -0.2
2013-08-05-Mon 10:17:00 type2   0.1
4

2 に答える 2

1

これを試して :

LANG=C sort -k3,3 -k4,4n file

からinfo coreutils 'sort invocation':

`-k POS1[,POS2]'
`--key=POS1[,POS2]'
     Specify a sort field that consists of the part of the line between
     POS1 and POS2 (or the end of the line, if POS2 is omitted),
     _inclusive_.

     Each POS has the form `F[.C][OPTS]', where F is the number of the
     field to use, and C is the number of the first character from the
     beginning of the field.  Fields and character positions are
     numbered starting with 1; a character position of zero in POS2
     indicates the field's last character.  If `.C' is omitted from
     POS1, it defaults to 1 (the beginning of the field); if omitted
     from POS2, it defaults to 0 (the end of the field).  OPTS are
     ordering options, allowing individual keys to be sorted according
     to different rules; see below for details.  Keys can span multiple
     fields.

     Example:  To sort on the second field, use `--key=2,2' (`-k 2,2').
     See below for more notes on keys and more examples.  See also the
     `--debug' option to help determine the part of the line being used
     in the sort.

そしてのためにLANG=C

   (1) If you use a non-POSIX locale (e.g., by setting `LC_ALL' to
`en_US'), then `sort' may produce output that is sorted differently
than you're accustomed to.  In that case, set the `LC_ALL' environment
variable to `C'.  Note that setting only `LC_COLLATE' has two problems.
First, it is ineffective if `LC_ALL' is also set.  Second, it has
undefined behavior if `LC_CTYPE' (or `LANG', if `LC_CTYPE' is unset) is
set to an incompatible value.  For example, you get undefined behavior
if `LC_CTYPE' is `ja_JP.PCK' but `LC_COLLATE' is `en_US.UTF-8'.

この投稿もご覧ください: https://stackoverflow.com/a/5868546/465183

于 2013-08-07T20:09:15.397 に答える
0

この-k3オプションは、「2 番目のフィールドの後の最初の空白文字から開始し、行末で終了する」と定義されたフィールドでソートしますが、これはおそらく意図したものではありません。おそらくあなたが望むのはこれです:

sort -n -k3,3 -k4,4 file

スプートニクが言及したビットを追加するLANG=Cと、同様に役立つ場合があります。

于 2013-08-07T20:19:07.217 に答える