相关疑难解决方法(0)

使用 sed 替换第 n 次出现的单词

我正在学习 sed,所以在这种情况下,我试图替换第二次出现的单词“line”。因此,我发出了以下命令:

(zet:pc:~/text) sed 's/line/LINUX/2' mytextfile
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
Run Code Online (Sandbox Code Playgroud)

但是从输出中,您可以看到 'sed' 并没有替换世界 'line' 的第二次出现。那么,我在这里犯了什么错误吗?

sed

1
推荐指数
2
解决办法
1552
查看次数

sed 或 awk:仅替换第 n 次出现的字符串

如何编写 a sed(或awk,或两者),它将采用以下内容:

echo '1 aa 2 2 3 bb 5 bb 2 5' | sed/awk ...
Run Code Online (Sandbox Code Playgroud)

并且只替换第n次出现的字符串?例如,第三次出现2或第二次出现bb?

因此,预期的输出将是(例如,当替换第二次出现的 时)bbreplaced

1 aa 2 2 3 bb 5 replaced 2 5
Run Code Online (Sandbox Code Playgroud)

输入字符串、替换字符串,n可以是任意输入。

bash sed awk

1
推荐指数
1
解决办法
2534
查看次数

打印第 n 个分隔符之前的所有内容

我正在寻找sed像这里这样的解决方案:Print everything after nth delimiter

sed -E 's/^([^\]*[\]){3}//' infile
Run Code Online (Sandbox Code Playgroud)

但要提取第 n 个分隔符之前的文本,而不是像示例中那样提取第 n 个分隔符。适用于所有 sed 变体的东西。并像示例一样对所有行进行操作。

此示例中的分隔符是\但可以是任何其他分隔符。应该适用于任何版本的 sed。

sed

-2
推荐指数
1
解决办法
216
查看次数

标签 统计

sed ×3

awk ×1

bash ×1