_jeter3.txtと_jeter1.txtという2つのファイルがあります。
すべてが20列でソートされていることを確認しました。sort -c
sort -t ' ' -c -k20,20 _jeter3.txt
sort -t ' ' -c -k20,20 _jeter1.txt
#no errors
しかし、2つのファイルが必要な場合、join
2番目のファイルがソートされていないというエラーが発生します。
join -t ' ' -1 20 -2 20 _jeter1.txt _jeter3.txt > /dev/null
join: File 2 is not in sorted order
理由がわからない。
cat /etc/*-release #FYI
openSUSE 11.0 (i586)
VERSION = 11.0
修正する: ' sort -f
'とjoin -i
(両方とも大文字と小文字を区別しない)を使用すると問題が解決します。しかし、それは私の元の質問を説明しません。
修正する:ソートと接続バージョン:
> join --version
join (GNU coreutils) 6.11
Copyright (C) 2008 Free Software Foundation, Inc.
(...)
> sort --version
sort (GNU coreutils) 6.11
Copyright (C) 2008 Free Software Foundation, Inc.
(...)
ベストアンサー1
sort
Ubuntu 11.04とバージョン(GNU coreutils)8.5join
の両方で同じエラーが発生しました。
彼らは明らかに互換性がありません。実際にコマンドに何か問題があるようです。 ()オプションがあるかどうかにかかわらず、特にsort
違いはありません。並べ替えるときは常に前に来ます。英数字以外の文字も常に無視されるようでした(前)-f
--ignore-case
aaB
aBa
abc
ab-x
Joinは反対を期待しているようですが...解決策があります。
実際、これはソート順序に関連しています。メッセージを削除するにはLANG=en_EN sort -k 1,1 <myfile> ...
thenを使用してくださいLANG=en_EN join ...
。
国際化はすべての悪の源です...(誰もこれを明確に文書化していません)。