csvから複数のファイルに情報を抽出する

csvから複数のファイルに情報を抽出する

CSVファイルから情報文字列を抽出して分離し、それを複数の新しいファイルに印刷するのに役立ちます。

分離する必要がある多くの情報を含む大容量ファイルがあります。コードでは、アラバマ州に関するすべての情報を新しいファイルにグループ化し、オクラホマ州に関する情報を別々のファイルにグループ化する必要があります。 Bash(.sh)を使用すると一度にできますか?

1 Sample; Region; Name; Result;
2 "99"; "Alabama", "Joe"; "Ill"
3 "100"; "Alabama", "Mary", "Ill"
4 "101", "Oklahoma", "Joseph", "Ill"

この場合、2つの出力ファイルを作成します。 1つはAlabamaのすべての行を含み、もう1つはOklahomaのすべての行を含みます。 7zipを使用して暗号化するためにこれらのファイルをさらに送信できますか?

ベストアンサー1

これはうまくいくはずです。

これを使用awkしてファイルを分離して作成し、p7zip暗号化できます。

for f in file; do
    awk ' /Alabama/ { print > "Alamaba.txt" } /Oklahoma/ { print > "Oklahoma.txt" }' $f
    7z a -p -mx=9 -mhe -t7z states.7z Alabama.txt Oklahoma.txt
    #7z a -p -mx=9 -mhe -t7z Alabama.7z Alabama.txt
    #7z a -p -mx=9 -mhe -t7z Oklahoma.7z Oklahoma.txt
done

awk出力ファイルと直接一致して印刷されます。

p7zip7zこの例では、States.7zという暗号化されたファイルが生成されます。

-a: Add files to archive

-p: Prompt for a password

-mx=9: Compression level

-mhe: Encrypt file names

-t7z: Generate a 7z archive 

データを回復するには、次を使用します。

7za e states.7z

出力

cat Alamaba.txt
2 "99"; "Alabama", "Joe"; "Ill"
3 "100"; "Alabama", "Mary", "Ill"

cat Oklahoma.txt
4 "101", "Oklahoma", "Joseph", "Ill"

おすすめ記事