2015-01-16 98 views
0

這是我的測試文件。在這個文件中,腳本標籤後面有一個換行符。我想用空格字符去除那個角色。我想編寫一個shell腳本,以便可以刪除這類錯誤。在文件的腳本標記中使用sed或tr命令刪除帶空格字符的換行符

<html> 
<head> 
<script 
type="text/javascript" sfsf="test" src="http://test.mydomain.com/test"></script> 

</head> 
<body> 
<script type="text/javascript" src = "http://test.com/public//test"></script> 

</body> 
</html> 

輸出應該是這樣的:

<html> 
<head> 
<script type="text/javascript" sfsf="test" src="http://test.mydomain.com/test"></script> 

</head> 
<body> 
<script type="text/javascript" src = "http://test.com/public//test"></script> 

</body> 
</html> 

我找到解決我自己

cat file | tr '\n' ' ' | sed 's/> \?/>\n/g' 
+0

請澄清如何你想替換這個文件? – ManojP

+1

您自己找到的解決方案不會產生所需的輸出。它會刪除空行,但我想這對你很好。 – Tiago

+0

@Tiago:是的,你說得對。我沒有注意到,謝謝:) – SAC

回答

0

使用trsed腳本標籤後刪除換行符和回車和帶空格。

cat file | tr -d '\n' | td -d '\r' | sed 's#</script>[[:space:]]+##g'

+2

隨意更換'cat file | tr -d'\ n'| tr -d'\ r''由'tr -d'\ n \ r' Cyrus

+1

+ 1,因爲我確實感覺:) –

+0

它會像 SAC

1

如果你可以使用perl

perl -n0e 's/(script)(\s+)/$1 /g; print' file 

,或者你可以省略 「打印」 命令,如果你使用-p代替-n:

perl -p0e 's/(script)(\s+)/$1 /g;' file 
相關問題