У меня есть файл, который мне нужно проанализировать в массиве, но я действительно хочу только короткую часть каждой строки и только для первых 84 строк. Иногда линия может быть:Bash считывает файл в массив на основе двух разделителей
>MT gi...
И я просто хочу МТ, чтобы ввести в массив. В других случаях это может быть что-то вроде этого:
>GL000207.1 dn...
и мне нужно бы GL000207.1
Я думал, что вы могли бы быть в состоянии установить два разделителей (один являющийся «>», а другой являясь «пробелом»), но я не уверен, как вы это сделаете. Я прочитал записи других людей о внутреннем разделителе полей, но я действительно не уверен, как это будет работать. Я думаю, возможно, что-то вроде этого может работать?
desiredArray=$(echo file.whatever | tr ">" " ")
for x in $desiredArray
do
echo > $x
done
Любые предложения?
Вы пробовали 'cut'? – Wrikken
Uh. Нет. Я только что начал с Баша, как ... неделю назад. Я пытаюсь изучить его для своей работы. Как вы используете вырез? – Stephopolis
Оболочка, как правило, плохо при обработке текста. Вы могли бы запутаться с 'IFS', но вам лучше использовать' cut', как предложено, или 'awk' или' perl'. – msw