ফাইলটিতে শব্দটি প্রতিস্থাপন করুন - ইউনিক্স কমান্ড


0

কাউন্টারটির জন্য আমি কীভাবে আমার ফাইলে 'শব্দ' প্রতিস্থাপন করতে পারি:

{"word":"resolucion","count":40723},{"word":"general","count":20976},
{"word":"","count":13334},{"word":"publica","count":12379},
{"word":"direccion","count":11958},{"word":"secretaria","count":9907},
{"word":"al","count":9324},{"word":"orden","count":8604},
{"word":"anuncia","count":8589},{"word":"concurso","count":6953},
{"word":"diciembre","count":6893},{"word":"adjudicacion","count":6762},
{"word":"estado","count":6154},{"word":"procedimiento","count":5694},
{"word":"julio","count":5598},{"word":"marzo","count":5440},
{"word":"-","count":5437},{"word":"convocatoria","count":5319},
{"word":"ayuntamiento","count":5259},{"word":"publico","count":5203},
{"word":"junio","count":4995},{"word":"convenio","count":4925},
{"word":"real","count":4916},{"word":"febrero","count":4896},
{"word":"proyecto","count":4826},{"word":"abierto","count":4782},

উদাহরণ স্বরূপ:

{"0":"resolucion","count":40723},{"1":"general","count":20976},
{"2":"","count":13334}, {"3":"publica","count":12379},
{"4":"direccion","count":11958},{"5":"secretaria","count":9907},
{"6":"al","count":9324},{"7":"orden","count":8604},
{"8":"anuncia","count":8589},

ইত্যাদি।

উত্তর:


0

এখানে আমাদের grepএবং sedবন্ধুদের সাথে একটি সম্ভাব্য সমাধান রয়েছে । এটি ছোট ফাইলগুলির জন্য ঠিক আছে, অন্যথায় একটি perl(বা awk?) সমাধান অনেক বেশি পারফরম্যান্ট হবে। এটি bashসিনট্যাক্স:

i=1
maxnum=$(grep -o '\<word\>' datafile | wc -l)
while (( i <= maxnum )); do
  sed -i "s/word/$i/" datafile
  (( i++ ))
done

grep -oমোট সংখ্যা, মোট ছাত্র শব্দ মধ্যে datafile। এটি গ্লেনের । এখানে কেবল কৌশলটি sedবিশ্বব্যাপী কাজ করছে না, তাই কেবলমাত্র প্রথম ম্যাচের স্ট্রিংয়ের পরিবর্তে। এই কোডটি এত ধীরে ধীরে, কেননা এটি পুরো sed ডেটাফাইলে সর্বোচ্চবারের অনুরোধ করে।

সচেতন হন, এটি sed -iআপনার মূল ডেটাফাইলে পরিবর্তন করে, তাই প্রথমে একটি অনুলিপি তৈরি করুন।


0

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

var data = require('./data.json')

console.log(data)

data.forEach(function (obj, idx) { obj[idx] = obj['word']; delete obj.word; });

console.log(data)

আমি ধরে নিই যে ফাইলটির নাম 'ডাটা.জসন' রাখা হয়েছে এবং এটি বৈধ জেএসওএন সিনট্যাক্স (আপনার পক্ষে তেমনটি নয়: আপনি মোড়কে নিখোঁজ রয়েছেন [ ]এবং ,শেষে আপনার উত্সাহ রয়েছে have


0

এটি বেশ দ্রুত হওয়া উচিত।

perl -0 -ne 's/"word"/q{"} . $x++ . q{"}/ge; print;' INFILE > OUTFILE
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.