ທ່ານເຄີຍພະຍາຍາມເປີດໄຟລ໌ໃນບັນນາທິການເພື່ອຊອກຫາວ່າມັນມີເນື້ອຫາທີ່ບໍ່ສາມາດອ່ານໄດ້ບໍ່?
ຄໍາສັ່ງ Linux "ສາຍ" ເຮັດໃຫ້ມັນສາມາດເບິ່ງຕົວອັກສອນທີ່ສາມາດອ່ານໄດ້ຈາກໄຟລ໌ໃດໆ.
ຈຸດປະສົງຕົ້ນຕໍຂອງການນໍາໃຊ້ຄໍາສັ່ງ "ສາຍ" ແມ່ນເພື່ອເຮັດໃຫ້ປະເພດໄຟລ໌ທີ່ທ່ານກໍາລັງຊອກຫາ, ແຕ່ວ່າທ່ານຍັງສາມາດໃຊ້ມັນເພື່ອສະກັດຂໍ້ຄວາມ. ຕົວຢ່າງ: ຖ້າທ່ານມີໄຟລ໌ຈາກໂຄງການທີ່ເປັນເອກະລັກເຊິ່ງຊ່ວຍປະຢັດໄຟລ໌ໃນຮູບແບບທີ່ບໍ່ເປັນລະຫັດທີ່ທ່ານສາມາດໃຊ້ "ສາຍ" ເພື່ອສະກັດຂໍ້ຄວາມທີ່ທ່ານໃສ່ໃນໄຟລ໌.
ຕົວຢ່າງການນໍາໃຊ້ຂອງຄໍາສັ່ງສາຍ
ວິທີທີ່ດີທີ່ຈະສະແດງໃຫ້ເຫັນເຖິງຄວາມສາມາດຂອງຄໍາສັ່ງ strings ແມ່ນການສ້າງເອກະສານໂດຍໃຊ້ LibreOffice Writer.
ພຽງແຕ່ເປີດ LibreOffice Writer ແລະໃສ່ຂໍ້ຄວາມບາງແລະຫຼັງຈາກນັ້ນໃຫ້ບັນທຶກໄວ້ໃນ ຮູບແບບ ODT ມາດຕະຖານ .
ຕອນນີ້ ເປີດປ່ອງຢ້ຽມຢູ່ປາຍໆ (ກົດ CTRL, ALT ແລະ T ໃນເວລາດຽວກັນ) ແລະຫຼັງຈາກນັ້ນໃຫ້ໃຊ້ ຄໍາສັ່ງ cat ເພື່ອສະແດງໄຟລ໌ດັ່ງຕໍ່ໄປນີ້:
cat yourfilename.odt | more
(ແທນທີ່ແຟ້ມຂອງຄຸນດ້ວຍຊື່ຂອງແຟ້ມທີ່ທ່ານສ້າງ)
ສິ່ງທີ່ທ່ານຈະເຫັນແມ່ນກໍາແພງທັງຫມົດຂອງຂໍ້ຄວາມທີ່ບໍ່ເຂົ້າໃຈ.
ກົດ spacebar ເພື່ອເລື່ອນໄປຫາໄຟລ໌. ໂດຍປົກກະຕິທົ່ວໄຟລ໌ທ່ານຈະເຫັນຂໍ້ຄວາມບາງຢ່າງທີ່ທ່ານໄດ້ເຂົ້າໄປ.
ຄໍາສັ່ງ strings ສາມາດຖືກນໍາໃຊ້ເພື່ອສະແດງພຽງແຕ່ສ່ວນທີ່ສາມາດ readable ຂອງມະນຸດເທົ່ານັ້ນ.
ໃນແບບຟອມ simplest ຂອງທ່ານ, ທ່ານສາມາດດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້:
strings yourfilename.odt | more
ເມື່ອກ່ອນ, ກໍາແພງຫີນຂອງຂໍ້ຄວາມຈະປາກົດ, ແຕ່ວ່າຂໍ້ຄວາມທີ່ທ່ານສາມາດອ່ານເປັນມະນຸດ. ຖ້າທ່ານມີໂຊກແລ້ວທ່ານຈະສາມາດເບິ່ງຂໍ້ຄວາມຂອງທ່ານໄດ້.
ສິ່ງທີ່ທ່ານຈະສາມາດເຫັນໄດ້ວ່າແມ່ນສໍາຄັນ, ແຕ່, ແມ່ນຢູ່ໃນເສັ້ນທໍາອິດ:
mimetypeapplication / vndoasisopendocumenttext
ພວກເຮົາຮູ້ວ່າປະເພດໄຟລ໌ແມ່ນໄຟລ໌ ODT LibreOffice Writer ສໍາລັບ 2 ເຫດຜົນ:
- ພວກເຮົາໄດ້ສ້າງໄຟລ໌
- ການຂະຫຍາຍແມ່ນ .ODT
ຈິນຕະນາການວ່າທ່ານບໍ່ໄດ້ສ້າງໄຟລ໌ຫຼືທ່ານພົບໄຟລ໌ທີ່ຢູ່ໃນແຜ່ນດິດທີ່ຫາຍໄປແລະໄຟລ໌ບໍ່ໄດ້ມີການຂະຫຍາຍ.
ການຟື້ນຕົວຂອງວິນໂດ ມັກຈະກູ້ຄືນໄຟລ໌ທີ່ມີຊື່ເຊັ່ນ: 0001, 0002, 0003 ແລະອື່ນໆ. ຄວາມຈິງທີ່ວ່າໄຟລ໌ທີ່ຖືກຟື້ນຕົວແມ່ນດີແຕ່ພະຍາຍາມແກ້ໄຂບັນຫາຂອງໄຟລ໌ເຫຼົ່ານັ້ນແມ່ນເປັນຝັນຮ້າຍ.
ໂດຍການນໍາໃຊ້ສາຍທີ່ທ່ານມີໂອກາດຕໍ່ສູ້ການເຮັດວຽກອອກປະເພດໄຟລ໌. ຮູ້ວ່າໄຟລ໌ແມ່ນໄຟລ໌ opendocument.text ຫມາຍຄວາມວ່າທ່ານສາມາດບັນທຶກມັນໄດ້ໂດຍການຂະຫຍາຍ ODT ແລະເປີດມັນໃນ LibreOffice writer.
ໃນກໍລະນີທີ່ທ່ານບໍ່ຮູ້ວ່າໄຟລ໌ ODT ເປັນພື້ນຖານເປັນໄຟລ໌ທີ່ຖືກບີບອັດ. ຖ້າທ່ານປ່ຽນຊື່ຂອງ yourfilename.odt ກັບ yourfilename.zip ທ່ານສາມາດເປີດມັນໄດ້ໃນເຄື່ອງມືການເກັບຮັກສາແລະຖອດລະຫັດໄຟລ໌.
Alternative Behaviors
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄໍາສັ່ງ strings ຈະສົ່ງຄືນຊ່ອຍແນ່ທັງຫມົດພາຍໃນໄຟລ໌ແຕ່ວ່າທ່ານສາມາດປ່ຽນພຶດຕິກໍາດັ່ງນັ້ນມັນຈະສົ່ງຄືນບົດສົນທະນາຈາກຂໍ້ມູນເລີ່ມຕົ້ນທີ່ໂຫລດໃນເອກະສານ.
ນີ້ຫມາຍຄວາມວ່າແນວໃດ? ບໍ່ມີໃຜເບິ່ງຄືວ່າຈະຮູ້.
ມັນເຮັດໃຫ້ຄວາມຮູ້ສຶກສົມມຸດວ່າທ່ານກໍາລັງໃຊ້ສາຍເພື່ອພະຍາຍາມແລະຊອກຫາປະເພດໄຟລ໌ຫຼືຊອກຫາຂໍ້ຄວາມສະເພາະໃນໄຟລ໌.
ຖ້າຫາກວ່າໃຊ້ຄໍາສັ່ງ strings ໂດຍໃຊ້ພຶດຕິກໍາຕົວແບບທໍາອິດທ່ານບໍ່ໄດ້ຮັບຜົນຜະລິດທີ່ທ່ານຫວັງສໍາລັບແລ້ວລອງໃຊ້ຫນຶ່ງຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອເບິ່ງວ່າມັນມີຄວາມແຕກຕ່າງຄືແນວໃດ:
strings -d yourfilename
strings - data yourfilename
ຫນ້າຄູ່ມືບອກວ່າຄໍາສັ່ງຂ້າງເທິງອາດຊ່ວຍຫຼຸດຜ່ອນຈໍານວນຂີ້ເຫຍື້ອທີ່ສົ່ງຄືນຈາກສາຍ.
ຄໍາສັ່ງ "ສາຍ" ສາມາດຖືກຕັ້ງຄ່າເພື່ອເຮັດວຽກໃນທາງກັບກັນເພື່ອໃຫ້ການລົບນ້ອຍລົງແມ່ນການປະພຶດທໍາອິດ. ຖ້ານີ້ແມ່ນກໍລະນີໃນລະບົບຂອງທ່ານແລ້ວທ່ານສາມາດສົ່ງຄືນຂໍ້ມູນທັງຫມົດໂດຍໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:
strings-a yourfilename
Output Formatting
ທ່ານສາມາດໄດ້ຮັບຂໍ້ຄວາມພາຍໃນຜົນຜະລິດເພື່ອສະແດງຊື່ຂອງໄຟລ໌ຄຽງຄູ່ກັບເສັ້ນຂອງແຕ່ລະຂໍ້ຄວາມ.
ເພື່ອເຮັດແນວນີ້ໃຫ້ດໍາເນີນການຫນຶ່ງຄໍາສັ່ງຕໍ່ໄປນີ້:
strings -f yourfilename
strings - print-file-name yourfilename
ຜົນຜະລິດຈະມີລັກສະນະເຊັ່ນ:
yourfilename: piece of text
yourfilename: ສ່ວນຫນຶ່ງຂອງຂໍ້ຄວາມ
ເປັນສ່ວນຫນຶ່ງຂອງຜົນຜະລິດທີ່ທ່ານສາມາດສະແດງອັດຕາສ່ວນທີ່ສະແດງຢູ່ໃນໄຟລ໌. ເພື່ອເຮັດດັ່ງນັ້ນດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້:
strings -o yourfilename
ຜົນຜະລິດຈະເບິ່ງຄືກັບນີ້:
16573 your
17024 text
ການຊົດເຊີຍແມ່ນຕົວຈິງຂອງການຖອດລະຫັດແປດເຖິງແມ່ນວ່າຈະຂຶ້ນກັບວິທີການລອກລອກໄດ້ຖືກລວບລວມສໍາລັບລະບົບຂອງທ່ານມັນກໍ່ສາມາດເປັນ hex ຫຼື decimal offset ເຊັ່ນດຽວກັນ.
ວິທີທີ່ຖືກຕ້ອງທີ່ສຸດຂອງການໄດ້ຮັບການຊົດເຊີຍທີ່ທ່ານຕ້ອງການຄືການໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:
strings -td yourfilename
ສາຍ - ກັບ yourfilename
strings -th yourfilename
ການຫັກລົບ t ຫມາຍຄວາມວ່າການກັບໄປທີ່ຊົດເຊີຍແລະລັກສະນະດັ່ງຕໍ່ໄປນີ້ກໍານົດຊະນິດຂອງການຊົດເຊີຍ. (ເຊົ່ນ d = ທະສະນິຍົມ, o = octal, h = hex).
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄໍາສັ່ງ strings ພິມແຕ່ລະ string ໃຫມ່ໃນເສັ້ນໃຫມ່, ແຕ່ວ່າທ່ານສາມາດກໍານົດ delimiter ຂອງການເລືອກຂອງທ່ານ. ຕົວຢ່າງເຊັ່ນການນໍາໃຊ້ສັນຍາລັກທໍ່ ("|") ເປັນຕົວກໍານົດຕົວກໍານົດການດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້:
strings -s "|" yourfilename
ປັບຂອບເຂດຈໍາກັດ
ຄໍາສັ່ງ strings ໂດຍຄ່າເລີ່ມຕົ້ນເບິ່ງສໍາລັບຕົວອັກສອນຂອງ 4 ຕົວອັກສອນທີ່ພິມໄດ້ໃນແຖວ. ທ່ານສາມາດປັບຄ່າຄ່າເລີ່ມຕົ້ນດັ່ງນັ້ນມັນຈະສົ່ງກັບສະຕິງທີ່ມີ 8 ຕົວອັກສອນທີ່ພິມໄດ້ຫຼື 12 ຕົວອັກສອນທີ່ພິມໄດ້.
ໂດຍການດັດປັບຂອບເຂດນີ້ທ່ານສາມາດປັບຕົວອອກເພື່ອໃຫ້ໄດ້ຜົນທີ່ດີທີ່ສຸດ. ໂດຍຊອກຫາຊ່ອຍແນ່ທີ່ຍາວເກີນໄປທ່ານອາດຈະຫຼີກລ້ຽງຂໍ້ຄວາມທີ່ເປັນປະໂຫຍດແຕ່ເຮັດໃຫ້ມັນສັ້ນເກີນໄປ, ທ່ານອາດຈະສິ້ນສຸດກັບສິ່ງທີ່ມີຫຼາຍຂື້ນ.
ເພື່ອປັບຂອບເຂດຂໍ້ກໍານົດຂອງ string ໃຫ້ໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:
strings -n 8 yourfilename
ໃນຕົວຢ່າງຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ມີການປ່ຽນແປງຂອບເຂດ 8.
ທ່ານສາມາດທົດແທນ 8 ດ້ວຍຈໍານວນຂອງການເລືອກຂອງທ່ານ.
ທ່ານຍັງສາມາດໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອເຮັດສິ່ງດຽວກັນໄດ້:
strings --bytes = 8 yourfilename
Include Whitespace
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄໍາສັ່ງ strings ປະກອບມີຊ່ອງຫວ່າງເຊັ່ນແຖບຫຼືພື້ນທີ່ເປັນຕົວອັກສອນທີ່ພິມໄດ້. ດັ່ງນັ້ນຖ້າທ່ານມີສາຍທີ່ອ່ານວ່າ "ແມວນັ່ງຢູ່ເທິງຕຽງ" ຫຼັງຈາກນັ້ນຄໍາສັ່ງສາຍຈະສົ່ງຂໍ້ຄວາມທັງຫມົດ.
ຕົວອັກສອນເສັ້ນໃຫມ່ແລະການສົ່ງກັບຄືນແມ່ນບໍ່ໄດ້ພິຈາລະນາເປັນຕົວອັກສອນທີ່ສາມາດພິມໄດ້ຕາມໄວ້ໃນຕອນຕົ້ນ.
ເພື່ອຮັບສາຍເພື່ອຮັບຮູ້ລັກສະນະເສັ້ນໃຫມ່ແລະການສົ່ງກັບຄືນເປັນອັກຂະລະທີ່ສາມາດພິມໄດ້ໃນລະບົບດັ່ງຕໍ່ໄປນີ້:
strings -w yourfilename
ປ່ຽນການເຂົ້າລະຫັດ
ມີ 5 ຕົວເລືອກການເຂົ້າລະຫັດທີ່ມີຢູ່ສໍາລັບການນໍາໃຊ້ກັບຊ່ອຍແນ່:
- s = 7 bit byte (ໃຊ້ສໍາຫລັບ ASCII, ISO 8859)
- S = 8 bit byte
- b = 16 bit bigendian
- l = 16 bit bitendian
ຄ່າເລີ່ມຕົ້ນແມ່ນ 7 bit byte.
ການປ່ຽນແປງການເຂົ້າລະຫັດລັນຄໍາສັ່ງຕໍ່ໄປນີ້:
strings-es yourfilename
strings --encoding = s yourfilename
ໃນຄໍາສັ່ງຂ້າງເທິງ, ຂ້າພະເຈົ້າໄດ້ກໍານົດຄ່າເລີ່ມຕົ້ນ "s" ເຊິ່ງຫມາຍຄວາມວ່າ 7 ບິດ byte. ພຽງແຕ່ປ່ຽນ "s" ດ້ວຍຕົວອັກສອນຕົວເລກທີ່ທ່ານເລືອກ.
ປ່ຽນຊື່ລະຫັດຊື່ສອງຊື່
ທ່ານສາມາດປ່ຽນແປງພຶດຕິກໍາຂອງສາຍເພື່ອໃຫ້ມັນໃຊ້ຫໍສະຫມຸດຄໍາອະທິບາຍໄຟລ໌ຄູ່ສອງທີ່ແຕກຕ່າງກັນກ່ວາຫນຶ່ງໃນລະບົບຂອງທ່ານ.
ສະຫຼັບນີ້ແມ່ນຫນຶ່ງໃນບັນດາຜູ້ຊ່ຽວຊານ. ຖ້າທ່ານມີຫ້ອງສະຫມຸດອື່ນທີ່ຈະໃຊ້ແລ້ວທ່ານສາມາດເຮັດດັ່ງນັ້ນໂດຍໃຊ້ຄໍາສັ່ງ strings ດັ່ງຕໍ່ໄປນີ້:
strings -T bfdname
ຕົວເລືອກການອ່ານຈາກໄຟລ໌
ຖ້າທ່ານຈະໃຊ້ຕົວເລືອກດຽວກັນແຕ່ລະຄັ້ງທ່ານບໍ່ຕ້ອງການລະບຸສະຫຼັບທຸກໆຄັ້ງທີ່ທ່ານໃຊ້ຄໍາສັ່ງເພາະມັນໃຊ້ເວລາ.
ສິ່ງທີ່ທ່ານສາມາດເຮັດໄດ້ຄືສ້າງໄຟລ໌ຂໍ້ຄວາມໂດຍໃຊ້ nano ແລະລະບຸຕົວເລືອກຕ່າງໆພາຍໃນໄຟລ໌ນັ້ນ.
ການທົດລອງໃຊ້ນີ້ຢູ່ພາຍໃນເທີມດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້:
nano stringsopts
ໃນໄຟລ໌ໃສ່ຂໍ້ຄວາມຕໍ່ໄປນີ້:
-f-o-n 3 -s "|"
ບັນທຶກໄຟລ໌ໂດຍການກົດ CTRL ແລະ O ແລະອອກໂດຍການກົດ CTRL ແລະ X.
ການດໍາເນີນການຄໍາສັ່ງສາຍດ້ວຍຕົວເລືອກເຫລົ່ານີ້ໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:
ສາຍ @stringsopts yourfilename
ຕົວເລືອກຈະໄດ້ຮັບການອ່ານຈາກ stringsopts ໄຟລ໌ແລະທ່ານຄວນເຫັນຊື່ໄຟລ໌ກ່ອນທີ່ຈະສະຕິງແຕ່ລະ, ຊົດເຊີຍແລະ "|" ເປັນແຍກເປັນ.
ການຊ່ວຍເຫຼືອ
ຖ້າທ່ານຕ້ອງການອ່ານຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບສາຍທີ່ທ່ານສາມາດເອີ້ນໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ໄດ້ຮັບຄວາມຊ່ວຍເຫຼືອ.
strings --help
ນອກນັ້ນທ່ານຍັງສາມາດອ່ານຫນ້າຄູ່ມືໄດ້:
man strings
ຄົ້ນຫາສະບັບພາສາທີ່ທ່ານກໍາລັງແລ່ນ
ເພື່ອຊອກຫາສະບັບຂອງສາຍທີ່ທ່ານກໍາລັງແລ່ນໃຊ້ຫນຶ່ງຄໍາສັ່ງຕໍ່ໄປນີ້:
strings-v
strings-V
strings --version