You can use a DATA step approach to read/write a PDS member (preferably to a new PDS library, not in-place), either using INFILE/FILE or by using a FILENAME allocation. First you will need to read the PDS directory to get the list of members to process - this can be done with PROC SOURCE.
Have a look at the SAS Companion Guide for z/OS.
Suggested Google advanced search arguments, this topic/post:
agree with Scott .... you should write a program to create a copy of the whole PDS with any changes you need within any relevant members. Programs add up to a whole lot less diskspace than the data and problems that can be caused by program-update-in-place.
However, PROC SOURCE was built in the days when SAS only ran on IBM mainframes and it was useful to have a "deck" to recreate the "SOURCE" pds with the IBM utility iebupdte. The "Example 4: Update a Library Member" can be found at http://publib.boulder.ibm.com/infocenter/zos/v1r9/topic/com.ibm.zos.r9.idau100/u1441.htm#u1441
This is not the direction I would recommend as the way to provide your best solution.
Since you might like to replace a variable name or a formula, with something wider, program lines could become wider than the original.
I would recommend writing a new pds(E) with variable length records supporting up to the normal 255 width default on other platforms.
Once you have reviewed the resulting pds(e), [ use the "superce" compare utility to reduce the compare time ] swap original/new names.
Note that there are limitations to PROC SOURCE, if for other than processing the directory -- recommend read the directory and then input/parse/change/output your PDS members each in an individual DATA step.
Also, there is another similar post/thread here in the EG forum: