Замена определенного номера в файлах unix

Я хочу создать комманд, который может заменить определенный номер в файловой системе Unix, например:

ZAR ZEC ZDA -9 2 3 4 8 -9 5 6 7 

У меня ZAR , ZEC , ZDA как мой заголовок и -9 в ZDA должны быть заменены на +9 . Какую команду следует писать, чтобы она изменила, в частности, это число, не изменяя значения других, например «-9», присутствующие в поле ZAR .

2 Solutions collect form web for “Замена определенного номера в файлах unix”

Чтобы изменить любое значение -9 в третьем столбце вашего файла на +9 :

 $ awk '$3==-9 {$3="+9"} 1' OFS='\t' file ZAR ZEC ZDA -9 2 3 4 8 +9 5 6 7 

$3==-9 выбирает строки, для которых третий столбец -9 . Для этих строк назначение $3="+9" изменяет этот столбец на +9 . 1 – критическая стенограмма awk для печати. Наконец, OFS='\t' сообщает awk распечатать вывод, используя вкладку в качестве разделителя полей.

Изменение файла на месте

Использование GNU awk (Linux):

 awk -i inplace '$3==-9 {$3="+9"} 1' OFS='\t' file 

Использование BSD / OSX awk:

 awk '$3==-9 {$3="+9"} 1' OFS='\t' file >tmp && mv tmp file 
 $ cat file ZAR ZEC ZDA -9 2 3 4 8 -9 5 6 7 

Поскольку столбец ZDA является последним полем,

 $ sed 's/-9$/+9/' file ZAR ZEC ZDA -9 2 3 4 8 +9 5 6 7 

Чтобы изменить сам входной файл, используйте -i для версии GNU (или -i.bak на OSX / BSD)

 sed -i 's/-9$/+9/' file 
  • файлов больше среднего размера каталога?
  • Как использовать одинарные кавычки внутри ssh и sqlplus
  • Установить идентификатор родительского процесса из ShellScript, позже удалить все дочерние процессы
  • Unix bash скрипт проверяет пустые файлы gz
  • Использование grep для поиска подстроки между двумя строковыми переменными, которые содержат пути
  • Создание дерева символических ссылок в существующих каталогах
  • как отправить сигнал клавиатуры с помощью сценария оболочки
  • Имена файлов сценария сценария
  • dd удалить диапазон байтов
  • Сценарий оболочки для изменения каталога терминала и открытия второго терминала
  • Нет файлов и каталогов в определенном каталоге в сценарии оболочки
  • Linux и Unix - лучшая ОС в мире.