在 bash 中,我想提取许多文件名的一部分并将该输出保存到另一个文件中。
这些文件的格式为 Coffee_{SOME NUMBERS I WANT}.freqdist。
#!/bin/sh
for f in $(find . -name 'coffee*.freqdist)
该代码将找到所有的 Coffee_{SOME NUMBERS I WANT}.freqdist 文件。现在,如何创建一个仅包含 {SOME NUMBERS I WANT} 的数组并将其写入文件?
我知道写入文件一会以以下内容结束该行。
> log.txt
尽管我缺少如何过滤文件名列表的中间部分。
您可以在本机中执行此操作bash
如下:
filename=coffee_1234.freqdist
tmp=${filename#*_}
num=${tmp%.*}
echo "$num"
这是一个纯粹的 bash 解决方案。没有外部命令(例如sed
)参与其中,所以速度更快。
使用以下命令将这些数字附加到文件中:
echo "$num" >> file
(在开始循环之前,您需要删除/清除文件。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)