相关疑难解决方法(0)

如何检查字符串是否包含Bash中的子字符串

我在Bash中有一个字符串:

string="My string"
Run Code Online (Sandbox Code Playgroud)

如何测试它是否包含另一个字符串?

if [ $string ?? 'foo' ]; then
  echo "It's there!"
fi
Run Code Online (Sandbox Code Playgroud)

??我的未知运营商在哪里?我是否使用echo grep

if echo "$string" | grep 'foo'; then
  echo "It's there!"
fi
Run Code Online (Sandbox Code Playgroud)

这看起来有点笨拙.

string bash substring

2332
推荐指数
23
解决办法
189万
查看次数

如何使用Bash检查文件是否包含特定字符串

我想在bash中检查文件是否包含特定字符串.我用过这个脚本,但它不起作用:

 if [[ 'grep 'SomeString' $File' ]];then
   # Some Actions
 fi
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?

bash shell grep

237
推荐指数
8
解决办法
37万
查看次数

Bash正则表达式=〜运算符

操作员=~叫什么?它只用于比较左侧的右侧吗?

运行测试时为什么需要双方括号?

即. [[ $phrase =~ $keyword ]]

谢谢

unix bash shell

47
推荐指数
3
解决办法
5万
查看次数

检查文件中是否存在多个字符串或正则表达式

我想检查我的所有字符串是否存在于文本文件中.它们可以存在于同一条线上或不同的线上.部分匹配应该没问题.像这样:

...
string1
...
string2
...
string3
...
string1 string2
...
string1 string2 string3
...
string3 string1 string2
...
string2 string3
... and so on
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们可以用正则表达式代替字符串.

例如,以下代码检查文件中是否存在任何字符串:

if grep -EFq "string1|string2|string3" file; then
  # there is at least one match
fi
Run Code Online (Sandbox Code Playgroud)

如何检查是否所有这些都存在?由于我们只对所有匹配项的存在感兴趣,因此我们应该在所有字符串匹配后立即停止读取文件.

是否有可能做到这一点,而不必调用grep多次(不会标尺时输入文件较大,或者如果我们有一个大量的字符串相匹配),或使用工具,如awkpython

此外,是否有一个字符串的解决方案可以很容易地扩展为正则表达式?

bash search grep

18
推荐指数
3
解决办法
2961
查看次数

用于将磁盘添加到 fstab(如果不存在)的脚本

首先,我已经阅读了许多带有 if 子句的帖子(见底部)以在文件中搜索特定字符串并按照 1to1 的顺序关注这些帖子,但是我无法让我的脚本正常工作。/etc/fstab如果尚不存在,我想输入:

#!/bin/bash
fstab=/etc/fstab

if grep -q "poky-disc" "$fstab"
then
    echo "#poky-disc" >> /etc/fstab
    echo "/dev/sdb1 /media/poky ext4 defaults 0 2" >> /etc/fstab
else
    echo "Entry in fstab exists."
fi
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助。这些是类似的帖子,并没有进一步帮助我:

bash grep path

10
推荐指数
2
解决办法
1万
查看次数

如何测试HTML文件中是否存在字符串 - Unix Script

我正在写一个ksh脚本.我在目录中有一对html文件,我需要检查文件是否包含两个字符串之一(字符串是互斥的).然后,我根据它们包含的两个字符串中的哪一个重命名文件.

测试时,我能够在.txt文件上使用以下代码,但在测试.html文件中的字符串时,功能不再有效:

outageString='Scheduled Outage List'
jobString='Scheduled Job List'

for file in `ls -1t $fileNameFormat | head -n 2`
do
    if grep -xq "$outageString" "$file"; then
        mv "$file" "$outageFileName"
    elif grep -xq "$jobString" "$file"; then
        mv "$file" "$jobFileName"
    fi
done
Run Code Online (Sandbox Code Playgroud)

注意:我已经ls独立测试了上面的命令,并返回了相应的文件.

文件内容:

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <title>
 OUS: Scheduled Outage List
 </title>
 </head>
 <body>
 <h3>
 OUS: Scheduled Outage List
 </h3>
 &nbsp; 
   .
   .
   .
Run Code Online (Sandbox Code Playgroud)

问:有没有人知道为什么grep在搜索两个文件中的字符串时没有返回适当的值(即,为什么grep不识别文件中存在字符串)?

类似问题:如何使用Bash …

unix string bash shell command-line

2
推荐指数
1
解决办法
1010
查看次数

如何测试文件中是否存在字符串

我正在使用shell/perl搜索一个不应该包含此字符串"section"的文件.

grep -vl如果字符串存在,请帮我找到way 命令返回文件名.

unix shell perl

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×6

shell ×4

grep ×3

unix ×3

string ×2

command-line ×1

path ×1

perl ×1

search ×1

substring ×1