У меня есть несколько файлов, расширения которых являются .gz с подобными именами файлов к:
ANKR00TUR_R_20183350000_01D_30S_MO.crx.gz
Я должен считать первые четыре символа имен этих файлов и сохранить эти символы в файле. Как я могу сделать это?
Здесь код для взятия сначала четырех символов имен файлов;
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
предыдущий для цикла распечатает на экране результат и также добавит к list.txt
Источник из документации относительно Проекта документации Linux (TLDP)
Улучшение обновления кода на основе @steeldriver предложения в комментарии.
Выбирать первые байты 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