如何读取文件名的前四个字符?

如何读取文件名的前四个字符?

我有几个扩展名为 .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

资料来源Linux 文档项目 (TLDP) 上的文档

更新 根据评论中@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

相关内容