awk открывает файл значений, разделенных конвейером, с данными в одном столбце, а не в трех

Пока ваша частная сеть недоступна из Интернета, у вас не возникнет проблем.

1
11.04.2020, 00:35
4 ответа

чтобы просто вернуть только определенный столбец файла с разделителями, выполните следующее

cut -d'|' -f1 test1.csv

для возврата поля 1... измените выше на -f2 для возврата 2-го столбца... параметр -d определяет символ-разделитель в этом случае '|'

Обычно создается конвейер из множества команд, связанных вместе с помощью канала | поэтому выше также можно написать

cat test1.csv | cut -d'|' -f1
0
19.03.2021, 02:30

Вы должны установить разделитель полей на |с -Fтак же (, тебе не нужноcat):

$ awk -F '|' '{print $1}' test1.csv
xxxx
yyyy
fgsh
$ awk -F '|' '{print $2}' test1.csv
0001
8768
6543
$ awk -F '|' '{print $3}' test1.csv
rose
lotus
lillyw

(Обратите внимание, что $здесь — командная строка подсказка используется для обозначения начала новой строки, а не части команды ).

-Fопределяется POSIX и должен быть переносимым.

3
19.03.2021, 02:30

awk предполагает, что файл разделен символами табуляции или строкой из одного или нескольких пробелов, поэтому, чтобы использовать файл значений, разделенных вертикальной чертой, мы сообщаем awk, что наши поля разделены символом вертикальной черты |.

Из первой ссылки в предложении выше:

Значение (разделителя полей )можно изменить в awk-программе с помощью оператора присваивания ‘=’ (см. раздел Выражения присваивания ). Часто подходящим моментом для этого является начало выполнения до того, как будут обработаны какие-либо входные данные, так что самая первая запись читается с правильным разделителем. Для этого используйте специальный шаблон BEGIN (, см. раздел Специальные шаблоны BEGIN и END ).

Например, здесь мы устанавливаем значение (разделителя полей, также известного как FS)в строку "|":

cat test1.psv | awk 'BEGIN { FS = "|" } ; { print $1 }'
1
19.03.2021, 02:30
awk -F "|" '{print $1}' p.txt ===============> To get first column

awk -F "|" '{print $2}' p.txt===================> To get second column




python

Below python code drives first and second column

#!/usr/bin/python

k=open('p.txt','r')
for i in k:
    print " ".join(i.split("|")[0:2])
0
19.03.2021, 02:30

Теги

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