Скрипт заміни шнура на AIX


0

Я використовую AIX, і -iу версії, яку я використовую , немає жодної опції sed:

sed: illegal option -- i
Usage:  sed [-n] Script [File ...]
        sed [-n] [-e Script] ... [-f Script_file] ... [File ...]

Я хочу замінити шлях до каталогу в одному з файлів за допомогою скрипту; Я намагаюся так:

WORKDIR="/workdir/liv/spool"
ARCHIVE="u/user/new"

sed 's/$WORKDIR/$ARCHIVE/ig' test.dat > abc
mv abc test.dat

що дає помилку:

sed: Function s/$WORKDIR/$STRATIXARCHIVE/ig cannot be parsed.

Я хотів би замінити всі випадки, такі як $ WORKDIR, на $$ ARCHIVE

Відповіді:


1

Змінні оболонки вирішуються лише між подвійними котируваннями (").

sed "s/$WORKDIR/$ARCHIVE/ig" test.dat > abc (Подвійні цитати)

Було б справно, якби не прямі коси. Sed може використовувати будь-який символ для розмежування цих полів введення та косою рискою вперед, мабуть, не найкращим вибором, оскільки він використовується для доріжок каталогів. Наприклад, ви можете використовувати це замість:

sed "s#$WORKDIR#$ARCHIVE#ig" test.dat > abc


Це не буде, тому що в змістовному змісті є косої риски: використовуйте різні роздільники для sкоманди:sed "s:$WORKDIR:$ARCHIVE:ig" test.dat > abc
glenn jackman

Працює відмінно # роздільник працював me.thanks людина
Grv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.