이 스레드가 유용하다는 것을 알았으므로 내 문제에 대한 답을 추가 할 것이라고 생각했습니다.
나는 자바 스크립트의 노드 응용 프로그램에서 데이터베이스 구성 파일 (datastax cassandra)을 편집하고 파일의 설정 중 하나에 대해 문자열과 일치시킨 다음 그 다음 줄을 바꾸고 싶었습니다.
이것이 내 해결책이었습니다.
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
변수는?