3

サイズの異なる 2 つのテキスト ファイルがあり、それらを 1 つのファイルにマージしたいのですが、コンテンツがランダムに混在しています。これは、一部の単体テスト用に現実的なデータを作成するためです。1 つのテキスト ファイルには true ケースが含まれ、もう 1 つのテキスト ファイルには false が含まれています。

標準の Unix ツールを使用してマージされた出力を作成したいと考えています。これどうやってするの?

4

3 に答える 3

6

を使用したランダムソート-R:

$ sort -R file1 file2 -o file3
于 2013-01-25T20:58:15.453 に答える
3

私のバージョンのsortもサポートしていません-Rawkしたがって、各行の前に乱数を挿入し、それらの番号に従って並べ替えてから、番号を削除するという代替手段があります。

awk '{print int(rand()*1000), $0}' file1 file2 | sort -n | awk '{$1="";print $0}'
于 2013-01-25T21:25:34.510 に答える
0

これにより、各行の先頭に乱数が追加さawkれ、その数に基づいて並べ替えられてから削除されます。これは、(choroba が指摘したように) 重複があり、クロスプラットフォームである場合でも機能します。

awk 'BEGIN { srand() } { print rand(), $0 }' file1 file2 |
    sort -n |
    cut -f2- -d" "
于 2013-01-25T21:24:44.713 に答える