Я пытаюсь напечатать столбцы с указанными именами столбцов. Но я обнаружил, что когда разделителем является ",", мой код не может разделить строку. Он напечатает всю строку. Не могли бы вы помочь мне разобраться в этом вопросе?
Мой входной файл имеет 3 столбца, разделенных запятой:
AWS_path,path
aws_test1,11111
aws_test2,22222
Мой код:
input=$1
awk -F "," 'NR==1 {
for (i=1; i<=NF; i++) {
f[$i] = i
print $i
print f[$i]
}
} NR>1 { print $(f["AWS_path"]), $(f["path"])}' $input
Результат показывает AWS_path и путь. Я думаю, что это должно быть:
aws_test1 11111
aws_test2 22222
Но на самом деле он выводит, как показано ниже, его столбец пути включает всю строку, а не только второй столбец.
aws_test1,11111 aws_test1,11111
aws_test2,22222 aws_test2,22222
Я пробовал много способов. Но я не могу это исправить. Не могли бы вы мне помочь?
foo_aws_path,foo_variant_type,foo_path
- person hek2mgl   schedule 20.12.2019cat -A
или полноценный шестнадцатеричный дампер, чтобы увидеть, так ли это. Или простоfile input.txt
и посмотрите, что там написано о кодовой странице. - person jthill   schedule 21.12.2019