আমি কীভাবে সহজেই লিনাক্সের একটি স্ট্যান্ডার্ড ইনপুট স্ট্রিম থেকে এইচটিএমএল বিশেষ সত্ত্বাকে রূপান্তর করতে পারি?


9

সেন্টওএস

কোনও ডেটা স্ট্রিম থেকে এইচটিএমএল বিশেষ সত্ত্বাকে রূপান্তর করার কোনও সহজ উপায় আছে? আমি কোনও ব্যাশ স্ক্রিপ্টে ডেটা দিচ্ছি এবং কখনও কখনও সেই ডেটাতে বিশেষ সত্ত্বাও অন্তর্ভুক্ত থাকে। উদাহরণ স্বরূপ:

"পরীক্ষা" & amp; পরীক্ষা-পরীক্ষা! @ # $% ^ & পরীক্ষা; *

আমি নিশ্চিত না কেন কিছু চরিত্রগুলি সূক্ষ্ম প্রদর্শিত হয় এবং অন্যগুলি না করে তবে দুর্ভাগ্যক্রমে, ডেটা আসার উপরে আমার নিয়ন্ত্রণ নেই।

আমি ভাবছি আমি এখানে এসইডি ব্যবহার করতে সক্ষম হতে পারি তবে মনে হচ্ছে এটি জটিল এবং সম্ভবত মিথ্যা ধনাত্মক হওয়ার ঝুঁকির মধ্যে রয়েছে। এই ধরণের ডেটা ডিকোডিংয়ে বিশেষায়িত এমন কোনও লিনাক্স কমান্ড আমি পাইপ করতে পারি?

উত্তর:



14

পার্ল (সর্বদা হিসাবে) আপনার বন্ধু। আমি মনে করি এটি এটি করবে:

perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

উদাহরণ:

echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

আউটপুট সহ:

someguy@somehost ~]$ echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
"test" & test $test ! test @ # $ % ^ & *

এটি আমার OSX10.8 ল্যাপটপ এবং একটি RHEL5. সামসিং হোস্টে কাজ করে।
জেসন টান

ইউটিএফ -8 এ ফাইলটি আউটপুট দেওয়ার জন্য, বিনমোড ব্যবহার করুন: প্রতিধ্বনি "& laquo;" | পার্ল-এন-এমএইচটিএমএল :: সত্তা -mutf8 -e 'বিনমোড (STDOUT, ": utf8"); HTML মুদ্রণ :: সত্তা :: ডিকোড_েন্টিটি ($ _); '
ফলস্ট্যাফ


2

পাইথন 3 সহ:

python3 -c 'import html,sys; print(html.unescape(sys.stdin.read()), end="")' < file.html

0

স্টিডিন থেকে পাঠ্য ফাইল নেয়:

#!/bin/bash
#
while read lin; do
  newl=${lin//&gt;/>}
  newl=${newl//&lt;/<}
  newl=${newl//&amp;/<}
  # ...other entites
  echo "$newl"
done

এটি সম্ভবত বশ> = সংস্করণ 4 প্রয়োজন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.