![UNIX/SED - 文件名中的通配符](https://linux22.com/image/160119/UNIX%2FSED%20-%20%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%AD%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6.png)
文件名为: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