Articles of sed

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

我希望能够打印从bash的行数,如:行号(从顶部算起) – >文件的结尾 看来尾巴只会从底部算起。 有谁知道如何做到这一点? 谢谢。 我试过以下 # 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 […]

sed不工作在Linux Centos,Ubuntu的,

我有一个简单的脚本,给我一些文件的值。 我正在使用sed来获取该值(语法在下面给出)。 这些命令一直工作到昨天。 但现在我没有得到任何价值,当我运行这些命令。 我没有改变任何东西,所以我很惊讶,是什么原因。 任何人都可以请告诉我如何debugging我的问题? 下面是文件的文字: May 1 11:59:31 box2 kernel: usb 1-3: new high speed USB device using ehci_hcd and address 24 May 1 11:59:31 box2 kernel: usb 1-3: New USB device found, idVendor=0411, idProduct=0105 May 1 11:59:31 box2 kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5 May 1 11:59:31 box2 […]

如何使用sed,perl在给定的目录中用特定的模式重命名文件及其内容?

给定一个名为Centos1.x,Centos1.y,Centos1.z的文件夹“Centos1”,这些文件的内容也是“Centos1”。 使用单个命令(使用find,sed,perl -pie)如何将它们重命名为“Centos2”以便发生所有“Centos1”以下是Centos1目录的内容。 Centos1.nvram Centos1-s005.vmdk Centos1.vmsd vmware-2.log Centos1-s001.vmdk Centos1-s006.vmdk Centos1.vmx vmware.log Centos1-s002.vmdk Centos1-s007.vmdk Centos1.vmxf Centos1-s003.vmdk Centos1-s008.vmdk vmware-0.log Centos1-s004.vmdk Centos1.vmdk vmware-1.log 注意:如果存在所有文件,我想要将“Centos1”replace为“Centos2”。 在更改为“Centos1”目录后,我运行了下面提到的命令 find . -type f -exec sed -i 's/Centos1/Centos2/g' {} + 但是没有帮助。 任何input?

Sed多行代替转义string

我试图将mysqldump输出文件转换为PostgreSQL兼容的SQL。 问题在于处理转义的string值。 我需要从: VALUES('blah blah blah','second string \'with escaped\' quotes and multiple lines goes here',35,10,'meh') 至: VALUES(E'blah blah blah',E'second string \'with escaped\' quotes and multiple lines goes here',35,10,E'meh') 注意在每个单引号string之前加上“E”。 这怎么能在sed中完成呢? 也可以打开使用其他正则expression式引擎,只要我可以stream式处理(在这里处理多GB文件)。

如何从lshw输出获得bash shell中所需的值?

我想从lshw输出中提取信息: -cpu product: …… 我只想要这个-cpu的产品信息。 我怎么用awk或sed来做到这一点?

使用sed在postgresql转储文件中转换hex字符

我正在将几个数据库从Postgresql 8.3服务器移动到Postgresql 8.4服务器。 到目前为止工作得很好,但是一个基地给了我一些麻烦。 该数据库在8.3服务器中被列为unicode编码,但是不知何故,客户端程序已经设法向其中注入一些无效的unicode数据。 当我使用postgres的自定义格式进行正常转储和恢复时,新服务器将不会接受它,抱怨unicode错误。 我的计划是做一个数据库的纯文本转储,然后使用sedreplace无效字符(他们不需要)。 但是,如何让sed在文件中的hex/二进制值工作?

如何在进入bash脚本的一组值之前添加换行符?

我有一套数据pipe道到一个bash脚本。 以下是这些数据的例子: "foo1": "Miscellaneous text", "foo2": "More text", "foo3": "blah blah blah", "foo4": 1635.0, "foo5": 0.0, "foo1": "Miscellaneous text that is different", "foo2": "More text1231231", "foo3": "blah blah blah234234", "foo4": 1633425.0, "foo5": 0.0, "foo1": "Miscellaneous text abc123", "foo2": "More text122121", "foo3": "blah blah blah414124", "foo4": 163235.0, "foo5": 1.0, "foo1": "More Miscellaneous text", "foo2": "asdfasdfaMore text", […]

如何使用sed从javascript文件中删除恶意代码

我在一些被黑客入侵的javascript文件中发现了以下两种不同的模式。 <!–2d3965–> some code <!–/2d3965–> /*2d3965*/ some code /*/2d3965*/ 我能够使用此命令从文件中删除第一个模式: sed -i 's/<!–2d3965–>.*<!–\/2d3965–>//g' javascript_file.js 但不能使用类似的命令删除第二个模式: sed -i 's/\/\*2d3965\*\/.\+\/\*\/2d3965\*\///g' javascript_file.js 什么是正确的语法来删除第二个模式?

用SEDreplaceLineFeed \ x0a

我必须在日志文件中删除大量的换行符(hex\ x0a)。 我只是有sed来解决这个问题。 我知道有点复杂 你有想法如何解决这个问题? 这里是一个示例文本文件: http ://s000.tinyupload.com/index.php?file_id= 05715208147126674999 hexdump -C hexprob.txt 00000000 45 0a 69 0a 6e 0a 66 0a 61 0a | Einfa | 我使用下面的代码来删除'E': sed -r's / \ x45 // g'hexprob.txt | hexdump -C 00000000 0a 69 0a 6e 0a 66 0a 61 0a | .infa | 但是,如果我想删除'\ x0a'它不工作: sed -r's / […]

sed +追加最后一个匹配字符后面的数字

我有一个名为log.txt的日志文件 我的目标是仅在文件log.txt中的最后一个string:“Number”之后添加参数:$ PARAM 备注:PARAM可以是任何数字 例: PARAM=34.43435454 尾-10log.txt date 12.3.2010 Number 2.34 date 12.3.2010 Number 2.14 date 12.3.2010 Number 34.43435454 有人有想法如何用sed做到这一点?