gpt4 book ai didi

linux - 用/在搜索字符串中替换 bash 文件中的文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:25 24 4
gpt4 key购买 nike

如何用不同的行替换 linux 文件中的以下文本

当前:

0 22 * * * /scripts/application_folder_backup.sh >> /var/log/application_folder_backup.log

替换行:#line_removed

我尝试使用 sed,但我在文件中的文本已经有一个/导致出现问题。我也尝试将字符串存储在变量中。但是没用

#!/bin/bash

var="0 22 * * * /scripts/application_folder_backup.sh >> /var/log/application_folder_backup.log"

sed -i -e 's/$var/#line_removed/g' /tmp/k1.txt

退出

最佳答案

只是 / 在这里不是问题,甚至 * 或所有特殊的正则表达式元字符对于 sed 来说都是问题,因为它使用仅用于搜索模式的正则表达式。

最好使用这个基于 awk 命令的 non-regex:

awk -v var="$var" 'index($0, var) { $0 = "#line_removed" } 1' file

#line_removed
awk 中的 index 函数使用纯文本搜索而不是基于正则表达式的搜索。

关于linux - 用/在搜索字符串中替换 bash 文件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42270225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com