Когда вы ссылаетесь на файл мэйнфрейма, я предполагаю, что вы имеете в виду MVS-файлы, а не USS-файлы, поскольку USS-файлы определены для sed
, как и любой другой файл.
sed
не может напрямую, вы можете использовать этот хак, чтобы заставить его работать, используя cat
и перекачивая его на стандартный вывод и трубопровод. Читайте ниже для получения дополнительной информации о наборах данных MVS и утилитах командной строки. В нем также есть ссылки на то, как указывать наборы данных MVS в командах USS, таких как cat
.
Я пробовал это в локальной системе, и она работала с этой командой sed
.
cat "//'USER1.TEST.CNTL(JOBCARD)'"
// JOB (CCCCCCCC), «ХОГСТРОМ»,
// MSGLEVEL = (1,1),
// MSGCLASS = O,
// CLASS = A,
// NOTIFY = & SYSUID
cat "//'USER1.TEST.CNTL(JOBCARD)'" | sed 's/JOB/BOB/'
// BOB (CCCCCCCC), 'ХОГСТРОМ',
// MSGLEVEL = (1,1),
// MSGCLASS = O,
// CLASS = A,
// NOTIFY = & SYSUID
Почему не в sed
?
Существуют ограниченные утилиты, которые поддерживают имена файлов MVS в командной строке. В этой статье от IBM описаны поддерживаемые утилиты.
К сожалению, sed нет в списке
Следующие утилиты поддерживают использование имен файлов MVS ™.
Обратитесь к описанию каждой утилиты для ограничений и исключений:
- автомонтирование
- с89
- ср
- mv
- чел
- смола
Наборы данных MVS, определенные с помощью DSNTYPE = LARGE, не поддерживаются.
В этом разделе говорится о доступе к файлам MVS в USS