2015-12-21 98 views
0

我的文件包含x行數,我想在每行開始和結尾的引用字符串之前和之後刪除字符串。 要刪除的引用字符串和字符串用空格分隔。用sed刪除每行的字符串

該文件包含:

test.user.passs 
test.user.location 
global.user 
test.user.tel 
global.pass 
test.user.email string_err 
@ttt...> test.user.car -> 
test.user.address 
è_ 788 test.user.housse 
test.user.child 
{kl78>&é} global.email 
global.foo 
test.user.foo 

如何在含有「測試」的字符串,並且還通過空格或標籤與sed分離的每個行的末尾的每一行的開始刪除字符串?

期望的結果是:

test.user.passs 
test.user.location 
global.user 
test.user.tel 
global.pass 
test.user.email 
test.user.car 
test.user.address 
test.user.housse 
test.user.child 
{kl78>&é} global.email 
global.foo 
test.user.foo 
+0

你要使用哪種語言的解決方案? –

+0

與sed更好我認爲 –

+0

很不清楚,使用數據解釋多一點(在預期結果中註釋?)在這種情況下什麼是引用字符串? – NeronLeVelu

回答

2

我理解你的問題是:找到的第一個詞就是 「單詞字符和至少一個點」

的Tcl:

echo ' 
set fh [open [lindex $argv 1] r] 
while {[gets $fh line] != -1} {puts [regexp -inline {\w+(?:\.\w+)+} $line]} 
' | tclsh - file 

sed

sed -r 's/.*\<([[:alpha:]]+(\.[[:alpha:]]+)).*/\1/' file 

perl的

perl -nE '/(\w+(\.\w+)+)/ and say $1' file 
+0

不錯........... glenn太棒了! – repzero

1

使用的sed像

sed -r 's/^[^ ]+[ ]+([^ ]+)[ ]+[^ ]*/\1/' file 
1

這可能爲你工作(GNU SED):

sed -r 's/.*(test\S+).*/\1/' file