何千ものxyz(緯度、経度、高度)のテキストファイルがあり、それを緯度と経度で区切りたいです。 「緯度(列1)が-1.00より大きい場合は、このディレクトリに移動」を生成するためにどのようにしてどのコマンドを使用できますか?私の元のディレクトリのすべてのファイルについて。
grepやawkを使っていくつかの他のコマンドを試しましたが、好きなように動作しません。
ファイルリストの例
2004_2006-361383_Morecambe_Bay_Heysham_Channel_s.xyz
2004_2006-361385_River_Mersey_Langton_Dock_Entrance_s.xyz
2004_2006-361399_Thames_Estuary_Gore_Channel_s.xyz
以下は、ファイルの最初の10行の例です。そのほとんどは数百万減っています。
-002.9584650 54.0087979 -5.3
-002.9416586 54.0326371 -1.3
-002.9307806 54.0323594 -8.5
-002.9644657 53.9985145 0.8
-002.9680185 54.0019534 -10
-002.9524820 54.0183868 -5
-002.9439942 54.0179227 -4.2
-002.9569578 54.0183595 -5.4
-002.9372192 54.0224494 -3.2
-002.9535454 54.0178188 -4.3
答え1
ファイルに興味深い名前(スペースなど)がない場合
グローバルソート
awk 'FNR==1 { printf "mv %s ../dir%d\n",FILENAME,$1 ; next ; }' * | bash
北/南アライメント
awk 'FNR==1 { printf "mv %s ../%s\n",FILENAME,$1<0?"south":"north" ; next ; }' * | bash
どこ
FNR == 1
ファイルの最初の行で作業printf
%d
列1のint部分に解析します。- 正常かどうか確認
| bash
に置き換えられました| head -10
next
残りの行はスキップして次のファイルに移動します。$1<0?"south":"north"
南または北を選択します
ファイル全体を移動し、すべての緯度をゼロ上または下に設定したいようです。