Chinaunix
标题:
【请教】shell字符串操作
[打印本页]
作者:
phenix_yw
时间:
2012-04-07 12:24
标题:
【请教】shell字符串操作
如何从一个单词集中删除指定的单词,如
STR_ALL="Tom Jack Lily Eye"
STR_SKIP="Lily Jack"
如何从STR_ALL中剔除STR_SKIP中的字符?
作者:
yinyuemi
时间:
2012-04-07 12:49
回复
1#
phenix_yw
for word in $STR_SKIP; do STR_ALL=${STR_ALL/ ${word}/}; done; echo $STR_ALL
Tom Eye
复制代码
作者:
phenix_yw
时间:
2012-04-08 11:44
回复
2#
yinyuemi
有点小问题,第一个单词无法删除,如STR_SKIP="Tom Lily Jack",结果仍然是Tom Eye
作者:
yinyuemi
时间:
2012-04-08 12:26
回复
3#
phenix_yw
STR_ALL=${STR_ALL/${word}/}
作者:
jiejie455
时间:
2012-04-08 12:28
本帖最后由 jiejie455 于 2012-04-08 12:29 编辑
#!/bin/bash
STR_ALL="Tom Jack Lily Eye"
STR_SKIP="Lily Jack"
skip=(${STR_SKIP})
for i in ${skip[*]}
do
STR_ALL=$(sed "s/\<$i\>//g" <<<"$STR_ALL")
done
echo $STR_ALL
复制代码
作者:
firefoxbug
时间:
2012-04-08 12:57
#!/bin/bash
STR_ALL="Tom Jack Lily Eye"
STR_SKIP="Lily Jack"
for word in $STR_SKIP
do
STR_ALL=`echo "$STR_ALL" | sed "s/$word//g"`
done
STR_ALL=`echo "$STR_ALL" | tr -s ' '`
echo "$STR_ALL"
复制代码
作者:
jason680
时间:
2012-04-08 13:05
回复
1#
phenix_yw
$ echo $STR_ALL | sed -r "s/`echo $STR_SKIP | sed 's/ /|/g'`//g;s/ +/ /g"
作者:
sunceenjoy
时间:
2012-04-09 11:49
#!/bin/bash
STR_ALL="Tom Jack Lily Eye"
STR_SKIP="Lily Jack"
for word in $STR_ALL
do
if ! echo $STR_SKIP | grep -q -w $word
then
echo -n $word" "
fi
done
作者:
Gubuntu
时间:
2012-04-10 09:13
root@osssvr-1 # echo $STR_ALL | xargs -n 1 | egrep -v `echo $STR_SKIP | sed 's/ /|/g'`
Tom
Eye
root@osssvr-1 #
复制代码
作者:
Gubuntu
时间:
2012-04-10 09:14
少了一步:
root@osssvr-1 # echo $STR_ALL | xargs -n 1 | egrep -v `echo $STR_SKIP | sed 's/ /|/g'` | xargs
Tom Eye
root@osssvr-1 #
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2