Articles of sed

如何检查sed命令是否replace了一些string?

这个命令用旧的stringreplace旧的string(如果存在的话)。 sed "s/$OLD/$NEW/g" "$source_filename" > $dest_filename 我如何检查replace是否发生? (或者发生了多less次?)

Sed命令适用于Linux,但不适用于OS X

我在Linux上使用这个sed命令来修补一个文件,它工作正常: sed -i -r "s/(\tpublic function __call.*)/\1\n\t\treturn null;/" rb.php 但是,当我在OS X上尝试这个命令,我得到一个错误: sed: 1: "s/(\tpublic function __ …": \1 not defined in the RE 那么,任何人都可以帮助我做出能够在Linux和OS X上运行的命令吗? 顺便说一下,我尝试像: sed -i '' -r "s/(\tpublic function __call.*)/\1\n\t\treturn null;/" rb.php 但它在Linux上不起作用。

将CSV中的第三个字段与GNU Linux(AWK / SED / GREP)中的模式文件进行匹配

当第三个字段与模式文件中的模式匹配时,我需要在CSV文件中打印所有行。 我已经尝试grep没有运气,因为它与任何领域不仅匹配第三。 grep -f FILE2 FILE1 > OUTPUT FILE1 dasdas,0,00567,1,lkjiou,85249 sadsad,1,52874,0,lkjiou,00567 asdasd,0,85249,1,lkjiou,52874 dasdas,1,48555,0,gfdkjh,06793 sadsad,0,98745,1,gfdkjh,45346 asdasd,1,56321,0,gfdkjh,47832 FILE2 00567 98745 45486 54543 48349 96349 56485 19615 56496 39493 正确的输出 dasdas,0,00567,1,lkjiou,85249 sadsad,0,98745,1,gfdkjh,45346 错误的输出 dasdas,0,00567,1,lkjiou,85249 sadsad,1,52874,0,lkjiou,00567 <—- I don't want this to appear sadsad,0,98745,1,gfdkjh,45346 我已经到处search,尝试不同的公式。 编辑:感谢Wintermute,我设法写这样的事情: csvquote file1.csv > file1.csv awk -F '"' 'FNR == NR { patterns[$0] = […]

在unix中查找和删除(更新)

以下是我的input文件: sample.txt : 3" 6-position 7' 4" to 10' 3-1/2" 4.8" Adjustable from 99" to 111" – max 148 而在输出中我只需要3个,即 output.txt : 3 4.8 所以基本上我需要打印"符号的数字值,其他非数字文本需要完全删除。 我试图用sed来实现这个,但是我无法得到想要的结果。 有没有办法在UNIX上实现这一点?

使用sed删除C / C ++文件中的函数体

我正在试图从一个源文件中创build一个具有所有函数/枚举/结构/ etc名称的文件。 为此,我正在尝试使用sed来完成这样的事情: (原始文件) function add1 (int i) { return i+1; } (sed的输出) function add1 (int i) { } 换句话说,我想删除函数正文的实际内容。 我到目前为止还没有得到它的工作。 有什么build议么? 编辑 :我尝试了这样的事情,没有成功(现在我试图只在函数的身体空白行): sed '/{/,/}/ s/.*//'

sed只有最后一个匹配模式

我只想sed文本文件的最后一个匹配模式。 input文件: boy boy girl boy 输出文件: boy boy girl boys

将引号标记为.csv(每个字段)AWK / SED

我有csv文件 Brand,Type,Color Porsche,Sport,Red BMW,Coupe,Blue 我想引用引号使它像: "Brand","Type","Color" "Porsche","Sport","Red" "BMW","Coupe","Blue" 什么是最快的方法呢? 我将在cronjob中实现它。 谢谢!!!! 亚当

Sed:如何replace特定模式位于文件中后发现的string

如果我在文件中有以下列表: integer, parameter :: ni = 1024 integer, parameter :: nj = 256 integer, parameter :: nk = 16 并希望基于string'ni ='进行search,然后用例如'512'这样的新stringreplace后面的string(本例中为'1024')(我想保留空格)。 我该如何使用sed? 请注意,我想只是擦除等号后的任何内容,这是因为有时string不会是一个简单的整数,它可能是“1.D0”。 在某些情况下,可能会有评论。 所以我只是想把等号前面的东西抹掉,换成新的值。 结果将是: integer, parameter :: ni = 512 integer, parameter :: nj = 256 integer, parameter :: nk = 16

用文本文件中的行号从另一个文件中删除行号

我有一个文本文件,包含一个巨大的行号列表,我必须从另一个主文件中删除。 这是我的数据看起来像 lines.txt 1 2 4 5 22 36 400 … 和documents.txt string1 string2 string3 … 如果我有一个简单的行号我可以很容易地使用 sed -i '1d,4d,5d' documents.txt 。 但是我需要删除很多行号。 另外,我可以使用bash / perl脚本将行号存储在数组中,并回显不在数组中的行。 但是我想知道是否有一个内置的命令来做到这一点。 任何帮助将不胜感激。

在第一次匹配之前插入行的命令

我有以下信息的文件 testing testing testing 我想在使用sed或任何linux命令的第一个testing字之前插入一个单词(testing过的) 需要获得输出 tested testing testing testing 谢谢