Я имею в сценарии удара:
for i in `seq 1 10`
do
read AA BB CC <<< $(cat file1 | grep DATA)
echo ${i}
echo ${CC}
SORT=${CC}${i}
echo ${SORT}
done
таким образом, "i" является целым числом, и CC является строкой как "СЕГОДНЯ"
Я хотел бы добраться затем в SORT
, "TODAY1", и т.д.
Но я добираюсь "1ODAY", "2ODAY" и так
Где ошибка?
Спасибо
Вам следует попробовать
SORT="${CC}${i}"
Убедитесь, что ваш файл не содержит "\ r", которое должно заканчиваться только на конец $ CC. Это вполне может объяснить, почему вы получаете "1ODAY".
Попробуйте включить | tr '\ r' '' после команды cat
ghostdog прав: с опцией -r программа read избегает потенциальных ужасов, таких как CRLF. Использование массивов делает опцию -r более приятной:
for i in `seq 1 10` do read -ra line <<< $(cat file1 | grep DATA) CC="${line[3]}" echo ${i} echo ${CC} SORT=${CC}${i} echo ${SORT} done
try
for i in {1..10}
do
while read -r line
do
case "$line" in
*DATA* )
set -- $line
CC=$3
SORT=${CC}${i}
echo ${SORT}
esac
done <"file1"
done
Иначе, покажите пример файла1 и желаемый результат