10/06/25 08:41:00
>>74
% Prolog
'拡張子が .rb の全てのファイルに対して、#!/usr/bin/env ruby を #!/usr/local/bin/ruby に置換する。ついでに、「ruby」という文字を「perl」に置き換える' :-
shs('ls -N *.cs',Files),
append(_,[File|R],Files),
get_lines(File,Lines),
指定された内容に文字列を置換する(Lines,Lines2),
put_lines(File,Lines2),
R = [].
指定された内容に文字列を置換する([],[]) :- !.
指定された内容に文字列を置換する([Line|R1],[Line2|R2]) :-
sub_atom(Line,_,_,_,A1,'#!/usr/bin/env ruby',A3,L1,L2,L3),
concat_atom([A1,'#!/usr/local/bin/ruby',A3],Line1),
rubyをperlに置換する(Line1,Line2),
指定された内容に文字列を置換する(R1,R2),!.
指定された内容に文字列を置換する([Line|R1],[Line2|R2]) :-
rubyをperlに置換する(Line,Line2),
指定された内容に文字列を置換する(R1,R2).
rubyをperlに置換する(Line,Line2) :-
replace_all(Line,ruby,perl,Line2).
% replace_all/3は URLリンク(nojiriko.asia) 参照