regex - 用于替换文件中第一次出现的 sed 命令不起作用

标签 regex awk sed

我正在尝试替换文件中出现的第一个字符串。例如尝试用 linux

替换第一个 foo

样本.txt

Hi foo bar
This is again foo bar.

命令:sed '0,/foo/s//linux/' sample.txt

上面命令的实际输出(基本没有变化)

Hi foo bar
This is again foo bar.

我的预期输出如下

Hi linux bar
This is again foo bar.

有人可以帮忙吗?

最佳答案

/tmp/test.txt

Hi foo bar!
This is again foo bar

使用以下 commando 仅替换搜索字符串的第一个 orrouance;

sed -e '1 s/foo/linux/; t' -e '1,// s//linux/' /tmp/test.txt

结果:

Hi linux bar!
This is again foo bar

关于regex - 用于替换文件中第一次出现的 sed 命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63505281/

相关文章:

c# - 似乎不太清楚这个正则表达式是怎么回事?

sql - REGEX 从列表中选择第 n 个值,允许空值

linux - Unix 如果为空则跳过第一行

android - editText 小部件的正则表达式,这是必要的吗?

javascript - 如何修改里面有n个元素的捕获组

linux - 在此 awk 命令中应该将 'RS' 设置为什么

linux - 获取 KSH 名称

linux - 在 linux 中调用 sed

awk - 将每一行向下移动到第二行

regex - 在文本文件中用制表符替换单个空格的命令