如何使用管道传输到sed的文件名列表来查找和替换变量?

时间:2017-03-01 20:53:49

标签: sed pipe ack ag

目前我使用以下内容查找并替换:

ack -l oldstring | xargs sed -i '' -e s/oldstring/newstring/g

有没有办法在不必多次输入oldstring的情况下执行此操作?这就是我正在尝试的不起作用:

ack -l oldstring | xargs sed -i '' -e s/{}/newstring/g

1 个答案:

答案 0 :(得分:0)

我最终决定创建两个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";
}