10

2 列目にソートしたい巨大なタブ区切りファイルがあります。cygwin ソートでフィールド区切り文字としてタブ文字を使用する必要があります。だから私はこのようなものが必要です:

sort -t \t -k 2,2 in.txt > out.txt

しかし、コマンド プロンプトは '\t' をタブ文字としてではなく文字どおりに評価します。Cygwin を実行している Windows マシンでこれを行う必要があることに注意してください。などのバリエーション

sort -t "\t"
sort -t \"\t\"

上記の\tの代わりに実際のタブを使用して、これをcmdファイルに入れても機能しません。

編集: DOS シェルまたは Cygwin bash シェルを使用したソリューションは問題ありません。

4

5 に答える 5

14

私のマシン(Mac bashプロンプト、GNUソート...)では、これは機能します:

sort -t '   ' -k 2,2 in.txt > out.txt

(引用符の間の「実際の」タブ。)

そこにタブを表示するには、CTRL-V、TAB(CTRL-Vの後にTAB)と入力します。

編集:cygwinプロンプトからWindowsマシンでテストしましたが、同じように機能します(予想どおり、bashはbashです)。

于 2009-01-09T01:06:39.773 に答える
13

\t の前に $ 記号を追加して文字列補間をオンにする必要があるため、タブは実際にソートに送信されます。これはどの端末でも機能するはずです:

sort -t $'\t' -k 2,2 in.txt > out.txt
于 2009-07-17T12:14:37.100 に答える
1

Windows コマンド プロンプトで、私が見つけた最も簡単な解決策は、最初にタブ補完を無効にすることです。

cmd /f:off

次に、リテラルのタブ文字を入力できます。

于 2011-04-02T08:00:18.040 に答える