UNIX/SED - 文件名中的通配符

UNIX/SED - 文件名中的通配符

文件名为:file_201909091143.csv

如何添加通配符来提取所有以 'file' 开头的文件?

#!/bin/bash
#清理空白行
sed -i '/^$/d' 文件?.csv #wildcard 丢失

更新目录的 ls:

drwxr-x--- 2 用户 用户 324 八月 29 16:27 0085
-rw-r----- 1 用户 user 168 九月 3 日 10:03 file.sh
-rw-r----- 1 用户 user 5779 Sep 3 10:57 file.sql
-rw-r----- 1 用户 user 726 九月 4 日 15:07 split_script.sh
-rw-r----- 1 用户 user 51 Sep 4 16:13 tst.sh
-rw-r----- 1 用户 user 21205 九月 4 日 16:20 file_20190808134503.csv

脚本触发如下:

bash tst.sh

答案1

正如 @msp9011 提到的,你可能需要交换你的 ?带 * 以允许多个字符匹配。

通配符讨论通配符的 bash 相互渗透。陈述一个? “可以代表任何单个字符”,而*“可以代表任意数量的字符”

$ cat run.sh 
#!/bin/bash
#cleans blank rows
sed -i '/^$/d' file*.csv
$ cat file_201909091143.csv 
line1

line3
$ ./run.sh 
$ cat file_201909091143.csv 
line1
line3

相关内容