Как я могу найти и заменить на переменную, используя список имен файлов, переданных в sed?
В настоящее время я нахожу и заменяю, используя следующее:
ack -l oldstring | xargs sed -i '' -e s/oldstring/newstring/g
Есть ли способ сделать это без необходимости печатать oldstring
больше чем единожды? Это то, что я пытаюсь, что не работает:
ack -l oldstring | xargs sed -i '' -e s/{}/newstring/g
1 ответ
Решение
Я наконец решил создать две функции bash для сохранения ввода:
# Function to find and replace.
function ags {
#!/bin/bash
ag -l "$1" | xargs sed -i '' -e "s/$1/$2/g";
}
# Function to delete any lines that contain a string.
function agd {
#!/bin/bash
ag -l "$1" | xargs sed -i '' -e "/$1/d";
}