如何使用 grep 命令操作字符串?

How to manipulate a string with the grep command?

我有一个格式为 yyyymmdd.txt 的文件名。如何只输出 yyyymmdd 而没有 .txt 扩展名?

例子

20220414.txt (before output)
20220414 (after the output)

您可以使用带有标记 -Fawk 来指定分隔符 .,然后使用 </code></p> 打印第一部分 <pre><code>echo "20220414.txt" | awk -F "." ' {print }'

输出

20220414

basename 有一个删除后缀的选项:

basename -s .txt 20220414.txt

给出:

20220414

或者,如果您的文件名存储在变量中,bash 可以提供帮助:

a=20220414.txt
echo ${a%.*}

给出:

20220414

grep 不操作任何东西,它显示文件中的内容。因此,您不能使用 grep 修改该文件,但您可以使用 -o 开关修改它显示的内容,如您在此处所见:

Prompt> echo "20220414.txt" | grep -o "[0-9]*"
20220414

[0-9]* 表示“整数列表,从字符 '0' 到字符 '9'