У меня есть файл с именем phone_dir.txt (например, 2 строки):
ADAMS, Andrew 7583
BARRETT, Bruce 6466
Я пытаюсь извлечь фамилии и использовать их с заглавной буквы. Требуется вывод:
Adams
Barret
Я могу использовать только такие команды, как:
Я попытался запустить следующий скрипт, но результаты оказались несовместимыми:
cut -c1 phone_dir.txt > last_names.txt | cut -f1 -d',' phone_dir.txt | cut -c2- | tr A-Z a-z | paste last_names.txt - | tr -d [:blank:]
Иногда результат:
Adams
Barret
А иногда
dams
arret
Почему возникают ошибки? противоречивые результаты?
Если вам разрешено создать временный файл, как насчет этого?
in=phone_dir.txt
out=last_names.txt
tmp=$$tmp && \
a=$(cut -d',' -f1 "$in" | tee >(cut -c2- | tr [:upper:] [:lower:] > "$tmp") | cut -c1) && \
paste <(printf "%s\n" ${a[@]}) "$tmp" | tr -d [:blank:] > "$out" && \
rm "$tmp"