2015-12-21 97 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