Articles of sed

转换只包含特定标签的XML

我有这个XML结构,我想将这个XML到另一个,但只有一些领域。 我怎样才能直接与xmllint或类似的工具? 我知道我可以用一些PHP库来做这种types的工作来parsingXML,但是如果可能的话,我想避免这种情况。 <?xml version="1.0" encoding="UTF-8"?> <data> <Entities> <Ent_ID>1</Ent_ID> <Name>John</Name> <Age>15</Age> </Entities> <Entities> <Ent_ID>2</Ent_ID> <Name>Pedro</Name> <Age>20</Age> </Entities> </data> 至: <?xml version="1.0" encoding="UTF-8"?> <data> <Entities> <Name>John</Name> </Entities> <Entities> <Name>Pedro</Name> </Entities> </data>

如果两者都存在于同一文件中,则sed不能区分CR

我有一个文件,CR(\ r)和LF(\ n)存在于同一个文件中。 a1 a2 CRLF b1 LF b2 CRLF c1 c2 CRLF 该文件需要修复: a1 a2 CRLF b1 b2 CRLF c1 c2 CRLF 逻辑很简单:用空string删除前面没有CR的LF: sed 's/[^\r]\n//g' input.txt > output.txt 但是,这是行不通的! 我不得不删除所有出现的LF,并用CRLFreplace所有剩余的CR: cat input.txt | tr -d '\n' | sed 's/\r/\r\n/g' >output.txt 这个错误我。 为什么不是sed工作?

Linux命令查看原始文件,包括其分隔符

我正在尝试在terminal中查看包括其分隔符的文件的内容。 例如: hello\t\tworld\n hello\t\tworld\t\tagain\n 而不仅仅是: hello world hello world again 我曾经使用过“sed”或“awk”一次做过这个……我想…但是,现在我似乎还记不起任何东西。 谢谢您的帮助。

Sed:为什么]似乎不起作用?

我试图匹配/输出第一个之前的所有文本]出现: sed -i -r 's/^([^\]]*).*/\1/' "$FILE.tmp" 这令人惊讶的不起作用。 但是,search另一个支架是行不通的: sed -i -r 's/^([^\[]*).*/\1/' "$FILE.tmp" 这是一个sed错误还是我做错了? 我知道我可以解决这个使用.*? 这足够好,但是这个问题让我难以忍受,我想知道是否有一些我错过了。 (根据 – 版本,我使用的是GNU sed 4.2.2。)

如何在文本文件linux / unix中更改date格式

以下是文本文件myfile.txt 7022122465,0,0,day,2015-09-29 10:48:33 7022597642,0,0,day,2015-09-29 10:48:33 7022848906,0,0,day,2015-09-29 10:48:33 7022191546,0,0,day,2015-09-29 10:48:33 7022180761,0,0,day,2015-09-29 10:48:33 7022125589,0,0,day,2015-09-29 10:48:33 7022224472,0,0,day,2015-09-29 10:48:33 我想从2015-09-29到2015:09:29使用正则expression式改变最后一列date格式,请帮助我。 我已经试过这样,但取代正则expression式(我是初学者到Linux) sed -r 's/([0-9]{4}-[0-9]{2}-[0-9]{2})/([0-9]{2}:[0-9]{2}:[0-9]{2})/g' myfile.txt

使用sedconfiguration修改

对不起,这是一个快速的。 我正在尝试使用简单的sed命令(作为执行大量函数的较大脚本的一部分)来修改sshconfiguration文件的值。 我似乎无法弄清楚为什么它不工作。 这是我想改变的configuration的行: PermitRootLogin without-password 这是我的代码: sed 's/^\(PermitRootLogin\s*.\s*\).*$/\1Yes/' sshd_config 所以我们的目标是用“是”来replace“无密码”。 它似乎工作,除了我收到这个,而不是: PermitRootLogin wYes

如何在linux / bash中提取二进制文件的文本部分?

我有一个二进制文件。 如果我用vi打开它,它会显示人类可读的文本和二进制字符序列。 什么是仅使用bash提取可读部分的最佳方法? 我在想,也许我们可以通过grep或sed模式来做到这一点? $ cat file1.bin | grep '????' > newfile.txt

如何在使用SED的文件中search两个连续行中的两个不同模式,并在模式匹配后打印下面四行?

我正在使用SED,并在模式匹配后寻找打印匹配模式和接下来的4行的行。 以下是我的问题的总结。 “myfile.txt”的内容有: As specified in doc. risk involved in astra. I am not a schizophrenic;and neither am I.; Be polite to every idiot you meet.;He could be your boss tomorrow.; I called the hospital;but the line was dead.; Yes, I've lost to my computer at chess.;But it turned out to be no match for […]

使用bash在一个文件中的模式之后插入一行

我有一个如下所示的文件abc.txt: #%PAM-1.0 # Test file # Hello World # # echo "Test" /etc/init.d/xrdp start # Comment again echo "Hello again" 我想插入一行作为第一个可执行的行后注释…所以,如果我想添加一个线路echo "Batman"后,所有的行开始#,我怎么能实现呢? 输出应如下所示: #%PAM-1.0 # Test file # Hello World # # echo "Test" echo "Hello Batman" /etc/init.d/xrdp start # Comment again echo "Hello again" 请注意,该行不会在其他注释行# Comment Again 我在下面尝试,但它不起作用。 我对Bash脚本很陌生,所以需要专家的帮助。 sed -i '#/a "echo "Batman"' […]

linux sed如何从提取的输出中删除括号

我想从string中提取10000 echo "some ran string (unique unique 10000) abc 161 xyz 100" 我无法确定如何删除结尾) 。 下面是我到目前为止尝试过的sed命令: sed -n -r 's/.*unique(.*) abc .*/\1/p' 输出是: echo "some ran string (unique unique 10000) abc 161 xyz 100" | sed -n -r 's/.*unique(.*) abc .*/\1/p' 10000) 任何关于如何删除结尾的build议)以及从这个输出引出的空间? 谢谢。