如何使用 grep 命令操作字符串?
How to manipulate a string with the grep command?
我有一个格式为 yyyymmdd.txt
的文件名。如何只输出 yyyymmdd
而没有 .txt
扩展名?
例子
20220414.txt (before output)
20220414 (after the output)
您可以使用带有标记 -F
的 awk
来指定分隔符 .
,然后使用 </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'
。
我有一个格式为 yyyymmdd.txt
的文件名。如何只输出 yyyymmdd
而没有 .txt
扩展名?
例子
20220414.txt (before output)
20220414 (after the output)
您可以使用带有标记 -F
的 awk
来指定分隔符 .
,然后使用 </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'
。