আমি এই থ্রেডটি দরকারী বলে মনে করেছি - তাই আমি ভেবেছিলাম যে আমি আমার নিজের সমস্যার উত্তর যুক্ত করব।
আমি জাভাস্ক্রিপ্টে নোড অ্যাপ্লিকেশন থেকে একটি ডাটাবেস কনফিগারেশন ফাইল (ডেটাস্ট্যাক্স ক্যাসান্দ্রা) সম্পাদনা করতে চেয়েছিলাম এবং ফাইলের একটি সেটিংসের জন্য আমার একটি স্ট্রিংয়ের সাথে মিল রাখতে হবে এবং তারপরে লাইনটি প্রতিস্থাপন করতে হবে।
এটি আমার সমাধান ছিল।
dse_cassandra_yaml='/etc/dse/cassandra/cassandra.yaml'
function replaceStringNextLine(file, searchString, newString) {
fs.readFile(file, 'utf-8', function(err, data){
if (err) throw err;
var re = "\\s+(\\-\\s(.*)?)(?:\\s|$)";
var myRegExp = new RegExp(searchString + re, "g");
var match = myRegExp.exec(data);
var replaceThis = match[1];
var writeString = data.replace(replaceThis, newString);
fs.writeFile(file, writeString, 'utf-8', function (err) {
if (err) throw err;
console.log(file + ' updated');
});
});
}
searchString = "data_file_directories:"
newString = "- /mnt/cassandra/data"
replaceStringNextLine(dse_cassandra_yaml, searchString, newString );
চলার পরে, এটি বিদ্যমান ডেটা ডিরেক্টরি ডিরেক্টরিটিকে নতুনতে পরিবর্তন করবে:
কনফিগার করার আগে ফাইল:
data_file_directories:
- /var/lib/cassandra/data
কনফিগারেশন ফাইলের পরে:
data_file_directories:
- /mnt/cassandra/data
valueএকটি পরিবর্তনশীল?