Thursday, March 15, 2012

cygwin ແລະ linux ໃນ windows

ພວກເຮົາບາງຄົນ ຄົງໄດຍິນ unix linux ມາແລ້ວ ແລະບາງຄົນຢາກລອງໃຊ້.
ສ່ວນໃຫຍ່ທີ່ເຫັນນິຍົມແມ່ນລົງ VMware ຫຼື Virtualbox ແຕ່ສຳຫຼັບຄົນທີ່ບໍ່ຕ້ອງການຍຸ້ງຍາກ ຢາກສຶກສາການໃຊ້ຄຳສັ່ງ UNIX/LINUX ກໍ່ສາມາດໃຊ້ cygwin ແທນ.

cygwin ເປັນໂປຼແກຼມພັດທະນາຂຶ້ນສຳຫຼັບຄົນທີ່ຍັງໃຊ້ windows ແຕ່ຢາກມີຄວາມສາມາດຂອງ unix.

download cygwin ໄດ້: http://cygwin.com/install.html

ຫຼັງຈາກນັ້ນກໍ່ຕິດຕັ້ງຄືກັບໂປຼແກຼມທົ່ວໄປ. ເມື່ອສຳເລັດ ຢູ່ໝ້າຈໍຈະມີ icon ດັ່ງກ່າວຢູ່ໝ້າຈໍ ສາມາດ click ແລ້ວລອງຄຳສັ່ງຕ່າງໆຂອງ unix/linux ໄດ້ເລີຍ.

ຕົວຢ່າງ:
ls

pwd

ls -la

ls -la | awk '{print $1"|"$2}'

ລາຍລະອຽກຂອງຄຳສັ່ງ unix/linux ທີ່ http://www.ee.surrey.ac.uk/Teaching/Unix/

ທ່ານສາມາດເຂົ້າ drive c ໄດ້ຢູ່ /cygdrive/c

ການໃຊ້ unix/linux ລະບຸຊື່ file ຫຼື directory ຕ້ອງພິມໃຫ້ຖືກ, ຕົງຢ່າງ myfile ບໍ່ຄື Myfile. ຕ້ອງໃຊ້ວົງຢືມຄູ່ຖ້າມີຍະຫ່າງ ເຊັ່ນ My file ຕ້ອງພິມ "My file"

ຂໍໃຫ້ທ່ານສະໝຸກກັບການສຶກສາ

ການເຮັດວຽກກັບ 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.