$!----------------------------------------------------------------------------+ $! REPLACE.COM - Wildcard file string search and replace | $!----------------------------------------------------------------------------+ $! P1 - Wildcard file specification $! P2 - String for which to search $! P3 - String to replace the above $! $ SAVERIFY = 'F$VERIFY(0)' $ ON CONTROL_Y THEN GOTO ABORTED $ ON ERROR THEN GOTO ABORTED $ IF P1 .EQS. "" THEN - READ/PROMPT="Wildcard file specification: " SYS$COMMAND P1 $ P1 = F$EDIT(P1,"UPCASE,COLLAPSE,TRIM") $ IF P1 .EQS. "" THEN GOTO ABORTED $ IF P2 .EQS. "" THEN - READ/PROMPT="Search string: " SYS$COMMAND P2 $ IF P2 .EQS. "" THEN GOTO ABORTED $ IF P3 .EQS. "" THEN - READ/PROMPT="Replacement string: " SYS$COMMAND P3 $ IF P3 .EQS. "" THEN GOTO ABORTED $! $ TMPFIL = "REPLACE_" + F$GETJPI(0,"PID") + ".TMP;1" $ OLDFILNAM = "" $ WRITE SYS$OUTPUT "In " + P1 + ", replacing """ + P2 + """ with """ +- P3 + """..." $ FILE_LOOP: $ FILNAM = F$SEARCH(P1) $ IF (FILNAM .EQS. "") .OR. (FILNAM .EQS. OLDFILNAM) THEN GOTO FINISHED $ OLDFILNAM = FILNAM ! Just in case not a wildcard file spec $ DEFINE/USER_MODE SYS$ERROR NL: $ DEFINE/USER_MODE SYS$OUTPUT NL: $ SEARCH/NOOUTPUT 'FILNAM' "''P2'" $ IF $STATUS .NES. "%X00000001" THEN GOTO FILE_LOOP $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT FILNAM + " replacement starting..." $ OPEN/WRITE TMPFIL 'TMPFIL' $ WRITE TMPFIL "$ EDIT/EDT/NOCOMMAND " + FILNAM $ WRITE TMPFIL "SUBS /" + P2 + "/" + P3 + "/WHOLE/NOTYPE" $ WRITE TMPFIL "EXIT" $ WRITE TMPFIL "$ EXIT" $ CLOSE/NOLOG TMPFIL $ @'TMPFIL' $ DELETE/NOLOG/NOCONFIRM 'TMPFIL' $ GOTO FILE_LOOP $ ABORTED: $ WRITE SYS$OUTPUT "Replace aborted." $ FINISHED: $ CLOSE/NOLOG TMPFIL $ IF F$SEARCH(TMPFIL) .NES. "" THEN DELETE/NOLOG/NOCONFIRM 'TMPFIL' $ EXIT 1 + 0*F$VERIFY(SAVERIFY)