ສົມມຸດເຮົາມີ 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