У меня есть файл 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?
Вы можете заменить все строки .png прямо в конце строки в INPUTFILE следующим образом:
sed 's/\.png$/.mat/' INPUTFILE
Приведенная выше команда не будет изменять INPUTFILE, а только печатать измененную версию
Чтобы непосредственно отредактировать файл, добавьте флаг -i в sed (или -i.bak, чтобы сохранить резервную копию исходного файла):
sed -i 's/\.png$/.mat/' INPUTFILE