Thursday, March 15, 2012

ການເຮັດວຽກກັບ text file ທີ່ສັບຊ້ອນ

ສົມມຸດເຮົາມີ file ຊື່ inputfile.txt ມີຮູບແບບດັ່ງນີ້:

[a]6g,13 a2
[c]f3,34 d6
[g]10,5 12

ເຮົາຕ້ອງການຂໍ້ມູນໃນວົງຂໍເປັນຖັນທີ 1, ຫຼັງວົງຂໍເປັນຖັນທີ 2, ຫຼັງຈຸດເປັນຖັນທີ 3 ແລະຫຼັງຍະຫວ່າງເປັນຖັນ ທີ 4, ໂດຍອອກມາໃຊ້ເຄື່ອງໜາຍ | ເປັນຕົວແຍກຖັນ. ດັ່ງລຸ່ມນີ້:

a|6g|13|a2
c|f3|34|d6
g|10|5|12

awk script ຈະຊ່ວຍດັ່ງນີ້:
awk -F"[\[\]\, ]+" '{print $2"|"$3"|"$4"|"$5}' inputfile.txt

ອະທິບາຍ:
awk  ເປັນຄຳສັ່ງໃຊ້ໂປຼແກຼມ awk ໃນ unix, linux, cygwin
-F     ເປັນສ່ວນປະກາດຕົວແຍກຖັນ ຫຼື Field Separator ໃນພາສາອັງກິດ
" "    ສ່ວນບັນຍາຍຕົວແຍກຖັນ
[ ]    ເປັນສ່ວນພິເສດ ຖ້າເຮົາມີຕົວແຍກຖັນຫຼາຍແບບໃນ file ດຽວກັນ
\[     ປະກາດວ່າເຄື່ອງໜາຍເປີດວົງຂໍ ([) ເປັນຕົວແຍກຖັນທີ 1
\]     ປະກາດວ່າເຄື່ອງໜາຍເປີດວົງຂໍ (]) ເປັນຕົວແຍກຖັນທີ 2
\,     ປະກາດວ່າເຄື່ອງໜາຍຈຸດ (,) ເປັນຕົວແຍກຖັນທີ 3
       ປະກາດວ່າ Space ເປັນຕົວແຍກຖັນທີ 4
+    ປະກາດວ່າ ໃຫ້ໃຊ້ Space ເປັນຕົວແຍກແຖວຕໍ່ໆໄປ

ຖ້າທ່ານມີຄຳຖາມຫຍັງເພິ່ມ ສາມາດຕິດຕໍ່ໄດ້ laoanywhere at yahoo dot com.

No comments:

Post a Comment