PowerShell to extract specific column from csv and store in a variable

Giả sử, tôi có một tập tin định dạng .csv với rất nhiều cột dữ liệu trong đó. Tuy nhiên, tôi chỉ quan tâm tới một cột chứa dữ liệu cần lấy ra. Lấy ví dụ với một database có rất nhiều dòng record chứa dữ liệu người dùng, nhưng tôi chỉ hứng thú với mỗi cột email thôi chẳng hạn.

Vậy có cách nào trích xuất riêng cột đó ra thôi không?

Dĩ nhiên là được hết. Ở đời này, chuyện quái gì mà không được cơ chứ? Đôi khi người ta khổ vì có quá nhiều tự do để làm quá nhiều điều mình mong muốn, đến nỗi cuối cùng họ không biết làm sao, đành chọn cách hủy hoại chính cuộc đời mình.

Quay trở lại bảng dữ liệu mẫu, tôi ví dụ một vài record mẫu do tôi bịa ra.

username email password age
heocon_bebong heocon@yahoo.com FAFDFKJJ 18
xinhxan_chieunay tocmay@gmail.com fsdsfsdf 29
han_doi_suong_gio buonchuyentinh@gmail.com sdgsdfsd 26
yeuem_tronkiep inuyasha@rocketmail.com 32r32ref23 12

Như vậy, tôi cần trích riêng cột email ra thôi, các cột còn lại tôi không care tới. Tôi sẽ dùng PowerShell có sẵn trong các đời Windows sau này để làm.

Tôi để file .csv đó ở một nơi để truy xuất tới nhằm giúp path của nó ngắn gọn hơn trong lệnh. Và thú vị nhất, là trong câu lệnh trích xuất, tôi không care gì tới vị trí cột cả, chỉ cần cái tên cột đó thôi là đủ rồi.

$email = Import-Csv .\Book1.csv | select -ExpandProperty email

Như vậy là xong! Thử view biến $email và ta sẽ thấy toàn bộ dữ liệu của cột này đã đổ hết vào biến này rồi. Tiếp theo chỉ cần export biến này ra một file .csv mới để sử dụng là được thôi.

$email | Out-File ‘C:\email_crawl.csv’

Tìm tới đường dẫn và mở tập tin vừa export ra lên, bạn sẽ thấy toàn bộ dữ liệu cần có đều nằm trong đó cả.

Cực kỳ đơn giản. Chẳng như phải tìm em, người con gái cho tới bây giờ anh vẫn chưa biết em là ai…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s