Заменить второй экземпляр строки в строке в файле ASCII с помощью Bash

У меня есть файл ASCII со следующей структурой:

file1.png otherfile1.png
file2.png otherfile2.png
file3.png otherfile3.png
...

Я хочу заменить .png на .mat, но только для второго столбца. Результат должен быть таким:

file1.png otherfile1.mat
file2.png otherfile2.mat
file3.png otherfile3.mat
...

Как это сделать в Bash?

1
задан 6 December 2016 в 02:19

1 ответ

Вы можете заменить все строки .png прямо в конце строки в INPUTFILE следующим образом:

sed 's/\.png$/.mat/' INPUTFILE

Приведенная выше команда не будет изменять INPUTFILE, а только печатать измененную версию

Чтобы непосредственно отредактировать файл, добавьте флаг -i в sed (или -i.bak, чтобы сохранить резервную копию исходного файла):

sed -i 's/\.png$/.mat/' INPUTFILE
7
ответ дан 23 May 2018 в 03:36

Другие вопросы по тегам:

Похожие вопросы: