我有几个扩展名为 .gz 的文件,文件名类似于:
ANKR00TUR_R_20183350000_01D_30S_MO.crx.gz
我需要读取这些文件名称的前四个字符并将这些字符存储在一个文件中。我该怎么做?
答案1
这里的代码用于获取文件名的前四个字符;
filename=ANKR00TUR_R_20183350000_01D_30S_MO.crx.gz
tmp=${filename:0:4}
echo $tmp
结果:
echo "$tmp"
ANKR
列表
for file in ./*.gz
do
echo "${file:2:4}" | tee -a list.txt
done
上一个 for 循环将在屏幕上打印结果并附加到 list.txt
更新 根据评论中@steeldriver 的建议改进代码。
答案2
要获取字符串的前 N 个字节,cut
可以使用:
echo ANKR00TUR_R_20183350000_01D_30S_MO.crx.gz | cut --bytes=1-4 > output
这将从给定的字符串中提取前 4 个字节并将其存储在文件中output
。
要将上述代码应用于多个文件名,请使用
ls *.gz | cut --bytes=1-4 > output