标签: sed

sed +在行中最后一个匹配单词后附加数字

我的日志文件名为:log.txt

我的目标是仅在文件 log.txt 中的最后一个字符串:“Number”之后添加参数: $PARAM

  • 备注:PARAM可以是任意数字

例子:

 PARAM=34.43435454
Run Code Online (Sandbox Code Playgroud)

尾部-10 log.txt

   date 12.3.2010 Number 2.34
   date 12.3.2010 Number 2.14
   date 12.3.2010 Number 34.43435454
Run Code Online (Sandbox Code Playgroud)

有人知道如何用 sed 做到这一点吗?

sed

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

sed 从 file.txt 插入多个文件

我有这个 sed & find 命令

find /home/www/ -name footer.php -exec sed -i 's/<\/body>/testmoe\n<\/body>/'
Run Code Online (Sandbox Code Playgroud)

我需要用 file.txt 中的数据替换 testmoe 所以它会是,

find /home/www/ -name footer.php -exec sed -i 's/<\/body>/file.txt\n<\/body>/'
Run Code Online (Sandbox Code Playgroud)

任何纠正我的命令的建议

sed

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

如何使用 grep 查找日志文件中最常出现的错误?

我有一个 PHP 应用程序,它在日志文件中生成大量警告和通知。

我正在一次修复这些。

我希望能够首先修复最常发生的问题,以便最大限度地提高我的更改对日志文件大小的影响。

如何使用 grep/sed/regex 等找出最频繁出现的通知?

我无法比较整行,因为时间戳在开头,但也许是“在线…… ”的列表/分组/排序?

替代文字

frequency log-files analysis grep sed

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

值得花时间学习 awk 吗?

我很擅长使用 bash 脚本编写,而且我正在学习正则表达式和一些 sed 用法。学习 awk 是否仍然值得,因为那里有所有替代方案。意见?

scripting bash awk sed

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

unix 脚本问题

我有一个在 FreeBSD 机器上运行的简单脚本,代码如下:

#!/bin/sh
`sed -i .bak '\:#start 172.0.0.3:,\:#end 172.0.0.3:d' /usr/local/etc/racoon/racoon.conf`
echo $?
Run Code Online (Sandbox Code Playgroud)

它应该删除两个模式之间的文本块。

问题是,如果我直接从 shell 运行 sed 命令,它会起作用,如果我运行脚本,则返回码为 0。

为什么?

unix shell sed

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

如何从 $(who am i) 中提取主机名

我尝试从以下字符串(使用创建who am i)中提取主机名:

username pts/0        2010-10-05 17:30 (www.example.com)
Run Code Online (Sandbox Code Playgroud)

我需要一个解决方案,如果 (www.example.com) 不存在(当我在本地登录时就是这种情况),它也可以工作。此外,该解决方案还必须在who am i返回以下字符串的 Mac 上运行:

username ttys006      Oct  5 16:47 (www.example.com)
Run Code Online (Sandbox Code Playgroud)

问题是 mac 在日期中放置了空格,这使得它难以使用cut。我认为,必须有一个sed用于提取子字符串的解决方案,但是我在弄清楚如何正确使用时遇到了问题sed

更新:疯狂的方法

这种方法只有在实际存在括号时才有效。如果不是,则会发生以下情况:

$ who am i | cut -f2 -d '(' | tr -d ')'
username ttys006      Oct  5 16:47
Run Code Online (Sandbox Code Playgroud)

linux bash sed strings

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

如何使用sed获取文本?

我想获取 tok98 和 5678 之间的文本并将其转储到文件中。

如果 tok98 和 5678 在同一条线上,我可以使用它

sed -n 's/.*\(tok98\)\(.*\)\(5678\).*/\2/p' testfile.txt > text.dmp
Run Code Online (Sandbox Code Playgroud)

但是当标记垂直间隔时它不起作用,我如何重写这个 sed 以在这里工作

$ cat testfile.txt
do with > 9
tok98
  fdf  df s df sd f sd v
  dvsdv  dvf sd vs vs dv  sdfsd

    2323 2323  232 {}   
   sfdf sd  f s df s df  sf 
5678
no way = true + 50

$
Run Code Online (Sandbox Code Playgroud)

sed dump

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

为什么 sed 不起作用?

我有一个文件,其中一行包含很多!字符。我想删除所有!字符。

我试过这个:

sed s/!// myfile
Run Code Online (Sandbox Code Playgroud)

和这个:

sed 's/!//' myfile
Run Code Online (Sandbox Code Playgroud)

和这个:

sed 's/"\!*"//' myfile
Run Code Online (Sandbox Code Playgroud)

但它们都只是打印出所有的“!”。

我一定遗漏了一些明显的东西。有任何想法吗?

linux unix replace sed

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

在 shell 脚本中使用 sed 替换文件中的 IP 地址

我有一个脚本,它在文件中找到一个字符串并将其替换为一个新字符串。

$ sed -i 's/$old_string'/'$new_string'/g' $FILENAME
Run Code Online (Sandbox Code Playgroud)

现在我需要条件是一个正则表达式,它还检查旧字符串后面是否有除数字以外的任何内容。

我试过这个,但没有用:

$ sed -i -r 's/$old_string(^[0-9])+/$new_string/g' $FILENAME
Run Code Online (Sandbox Code Playgroud)

任何的想法?

linux shell centos sed regular-expressions

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

sed + 仅当行以特定字符结尾时删除行

需要帮助 - 如果最后一个字符是 - ":" 和 sed ,如何从文件中删除该行,在 Solaris 机器上

例如 sed 将删除以下行(包括黑线)

      /etc/val/config/globals.xml:/globals/CLUSTERNODES/node:
Run Code Online (Sandbox Code Playgroud)

例如不需要删除的内容

      /etc/val/config/globals.xml:/globals/CLUSTERNODES/node:node1a
Run Code Online (Sandbox Code Playgroud)

solaris sed

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