Если есть только один экземпляр того, что вы хотите заменить, bash(1)
имеет простую функцию, впервые представленную в csh(1)
:
^old^new
заменит первый экземпляр old
на new
:
$ filter_script file2 > output_file2
$ ^2^4
filter_script file4 > output_file2
Если вы хотите заменить все экземпляры, для которых требуется больше набирать:
$ filter_script file2 > output_file2
$ !:gs/2/4/
filter_script file4 > output_file4
g
указывает на global замену в командной строке. !
относится к строке из истории - которая может быть более конкретной, если вы хотите извлечь команду из более далекой истории, чем непосредственно предыдущая команда. См. bash(1)
раздел Event Designators
.