【发布时间】:2015-11-22 08:19:21
【问题描述】:
代码:
READLINE=$(sudo /bin/cat < "file.txt");
IFS=$';'
for i in $READLINE;
do
txt=$txt" ""$i";
done
unset IFS
for x in $arr
do
if [[ $txt == *$x* ]] ; then
echo "$x is in the txt file";
输出文件.txt
电信测试;是的;
循环输出:
telecomtest 在 txt 文件中
tel 在 txt 文件中
我只想打印完整的单词而不是它的一部分。
这意味着只打印 teletest 而不是 tel。
我怎样才能做到这一点?
【问题讨论】:
-
[[ " $txt " == *" $x "* ]] -
您的第一部分非常多余。
cat file.text | tr ';\n' ' '工作。 -
什么是
$arr?它似乎包含teletest 和tel。只需从 $arr 中删除 tel 即可。请学习一些shell语法; sn-p 中的大多数分号完全没有用(即可以在不更改程序的情况下删除)。 -
@HuStmpHrrr 确定吗?注意须藤。而且您不应该谈论极度冗余并宣传无用的猫 :-)
-
您可以对
IFS=';'使用常规引号。$'...'只需要处理一些C风格的转义码。
标签: string bash shell for-loop contains