Чтение сценария оболочки отдельно столбцы из файла

Можно только получить доступ к дисплеям, которые существуют на компьютере (обычно только один 0). Однако существуют программы, которые могут создать новые дисплеи как окна как xnest.

Но lacqui и staticsan являются правильными, большую часть времени Вы не заботитесь о дисплеях.

Для получения дополнительной информации пойдите и читайте о X-оконной системе.

2
10.12.2013, 16:55
3 ответа
while read firstcol secondcolandtherest ;
do
    something
done < the_file

т.е.: при помещении нескольких аргументов в "чтение" это помещает первый в первый аргумент, 2-й в 2-м аргументе, и т.д. В последнем аргументе это поместило "отдых строки".

некоторые примеры:

#if you want to read line by line: only 1 arg (therefore, it puts everyuthing in it, as the only arg is the last arg)
while read whole_line ; 
do
     something with "$whole_line"
done

#if you only want only column 1 in $first, and everything else in $second_and_rest_of_line:
while read  first second_and_rest_of_line
 do
     something with "$first" and "$second_and_rest_of_line"
done

#if you only want col 1 and 2, and don't care about any extra cols:
while read  first  second  nonimportant
do
     something with $first and "$second" #and we don't care about $nonimportant's content
done

Обратите внимание на то, что: необходимо действительно добавить "-r" (для получения необработанного входа) опция считать, и изменить IFS согласно тому, в чем Вы нуждаетесь... Но вышеупомянутые примеры для обсуждения "аргументов", не надлежащего вызова чтения. См. http://mywiki.wooledge.org/BashPitfalls для получения информации об этом и многой другой тонкости

6
27.01.2020, 21:52
  • 1
    необходимо действительно добавить "-r" (для получения необработанного входа) опция считать, и изменить IFS согласно тому, в чем Вы нуждаетесь... Но вышеупомянутые примеры для обсуждения "аргументов", не надлежащего вызова –  Olivier Dulac 10.12.2013, 17:06

В ударе:

$ read -a arr <<< 'Mary 34'
$ echo "${arr[1]}"
34
0
27.01.2020, 21:52
while read -a line; do echo -e "${line[1]}"; done < file
34
45
56
29

где file содержит Ваш список.

1
27.01.2020, 21:52

Теги

Похожие вопросы