Articles of sed

用sed添加一个内核参数到grub

我正在写一个bash脚本,以非交互方式在Linux系统上启用hibernate模式。 为此,我需要在该行的引号内插入一个包含斜线的shellvariables。 b编辑文件的相关部分如下所示: GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" 我需要将其更改为: GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=/dev/disk/by-partuuid/c5a552c2-fe8f-423a-9037-c35bf090d9c3" GRUB_CMDLINE_LINUX="" 增加的参数由一个shellvariables提供。 我试过这个: sed -i '\*^GRUB_CMDLINE_LINUX_DEFAULT* s*"$* '"$(grub_resume_boot_option)"'"*' /etc/default/grub 我正在瞄准的逻辑是:“寻找一个以模式”GRUB_CMDLINE_LINUX_DEFAULT“开始的行,并用给定的模式replace最后的”。 使用*作为分隔符来保留扩展variables中的斜杠。 但是,如果行尾有空格,则该命令将失败。 是否有任何方法可以使它不占用线路末尾的空格? 另外,如果有更简单或可读的解决scheme,我会非常感兴趣。

在sed中的两个模式之间提取

input文本文件: #END this should not be extracted #BEGIN This should be extracted. #BEGIN keep going.. These lines should be extracted by our script. Everything here will be copied. #END That should be all. #BEGIN Nothing from here. #END 期望的输出: This should be extracted. #BEGIN keep going.. These lines should be extracted by our script. Everything […]

尾巴-F没有中断

我正在拖拽一个文件。 我想在拖拽的时候从文件中删除行。 我想避免覆盖文件(截断),我想避免用新文件replace文件,因为这很可能会弄乱/破坏尾部命令的结果。 目前我已经尝试了两种不同的方法来做到这一点: 读取文件的全部内容,删除不需要的数据行,然后用比以前less的数据回写到文件。 这导致一些stderr从tail命令=> "file was truncated" … tail -F仍在工作,但是它logging了这个stderr。 使用sed -i '/pattern/d' my-file.txt从我不再需要的文件中删除行。 这会导致一些stderr从尾部命令=> "file was replaced" (注意不同于上面)… tail -F仍然在工作,但它logging了这个stderr。 我想知道是否有删除文件中的行而不截断文件或replace文件的方法,因为这似乎使生活有点难以tail 。 我应该忽略这个stderr吗? 如果我只是忽略了stderr,我认为尾部结果将是不准确的。 我需要尾部结果尽可能准确,因为它们正在进入一个新的程序,而不是由人类阅读。

sed命令行将“aas = aas”更改为“aas = aas”

一个正则expression式/ sed专家的问题:我需要美化一些c ++代码。 代码中散布着不同版本的赋值运算符,它们的间距types不同。 即 a=b a =b a= B a = b a= b A = B. // the correct format needed, and so must be ignored by SED =上应该只有一个空格。 如果发现更多,额外的必须删除。 我需要制作一个脚本来扫描文件夹和子文件夹中的所有文件,并根据需要进行search和replace。 有一些变化,如a + = b等 我在OsX上运行,但有Linux和Windows机器可用。 非常感谢。

如何检查/ var / log / messages中最近10小时的变化

我想用下面的命令(grep和sed)检查最近10个小时/ var / log / messages中的更改。 Grep正在提取最近3天的所有数据。 Sed运行成功,但没有结果。 有人可以帮助我用这些命令或任何其他命令来检查日志文件中的更改。 sed -n "/^$(date '+%b %_d %H:%M' -d -10 hours)/,\$p" /var/log/messages grep "^$(date +'%Y-%M-%d %H %M' -d -10 hours)" /var/log/messages

使用Linux删除短于4个字符的单词

我已经阅读了下面的内容,并尝试重写我想要的命令逻辑。 但是,我只是无法做到。 在bash中删除长度小于2的单词 试过: echo $example | sed -e 's/ [a-zA-Z0-9]\{4\} / /g' echo $example | sed -e 's/ [a-zA-Z0-9]\{4\} / /g' 使用sed删除所有大于6个字符的单词 试过: sed -e s'/[A-Za-z]\{,4\}//g' 请帮助我一个简单的awk或sed命令以下内容: Here is an example line of fantastic data 并得到: Here example line fantastic data

如何用variablesreplaceAwk命令的pipe道输出

我试图拿一个列,并通过回声命令pipe道。 如果可能的话,我想保持一行,或尽可能有效地做到这一点。 在研究的同时,我发现我必须使用单引号来扩展variables并避免双引号。 这是我正在尝试: awk -F ',' '{print $2}' file1.txt | while read line; do echo "<href=\"'${i}'\">'${i}'</a>"; done 但是,我一直得到的行数比单行的输出。 如果你知道如何在场地4的每一条线上,这将是非常有帮助的。 FILE1.TXT: Hello,http://example1.com Hello,http://example2.com Hello,http://example3.com 期望的输出: <href="http://example1.com">http://example1.com</a> <href="http://example2.com">http://example2.com</a> <href="http://example3.com">http://example3.com</a>

在特定的htaccess文件中search和replace – linux

我需要将这一行添加到位于/home/*/site/assets/.htaccess中的每个.htaccess文件,其中*可以是任意数量的目录 我需要find这个文本 RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS] 并在其上面添加一行,或者用此replace它 RewriteCond %{REQUEST_URI} !^/site/assets/sym RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS] 我在网上看过这个网站,但是我不清楚如何处理 生成我想编辑的文件列表(所以find所有匹配这个path的文件:/home/*/site/assets/.htaccess) 在replace文本中添加换行符 任何人都可以提出一个明确解释它的资源,否则,让我知道我是否正在寻找这个工作的正确工具? 我的操作系统是OS OS 5.5,我运行一个LAMP服务器,如果这有很大的区别,Apache 2。 谢谢

使用SED在unix中编辑文件

我在UNIX中有file1.txt,如下所示 [Section A] $param1=value1 $param2=value2 [Section B] $param1=value1 $param2=value2 $param3=value3 我想编辑部分B中的value2为new_value2编程 [Section A] $param1=value1 $param2=value2 [Section B] $param1=value1 $param2=new_value2 $param3=value3 任何想法应该是什么样的unix命令来做到这一点(使用sed?)? 非常感谢。

在文件中每出现一个字符就插入一些东西

我有一个包含查询的文件,每个查询以“;”结尾,我想添加一个“COMMIT; BEGIN;” 每100个查询。 查询可能需要超过1行。 例如: INSERT INTO table VALUES(…); DELETE FROM table WHERE …; UPDATE table SET …; 所以我想每100个取代一次“;” 以“COMMIT; BEGIN”开始 (我知道我必须添加一个BEGIN;在文件的开头,最后做一些事情,但是很简单) 我需要在shell脚本中这样做,但我不是Linux专家,使用sed或awk(文件大小可能像4GB那样大)会更好吗? 我知道这些命令的基础知识,但我不知道我是否可以在这里做我想做的事情… 谢谢!