Пока ваша частная сеть недоступна из Интернета, у вас не возникнет проблем.
чтобы просто вернуть только определенный столбец файла с разделителями, выполните следующее
cut -d'|' -f1 test1.csv
для возврата поля 1... измените выше на -f2 для возврата 2-го столбца... параметр -d определяет символ-разделитель в этом случае '|'
Обычно создается конвейер из множества команд, связанных вместе с помощью канала | поэтому выше также можно написать
cat test1.csv | cut -d'|' -f1
Вы должны установить разделитель полей на |
с -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 и должен быть переносимым.
awk предполагает, что файл разделен символами табуляции или строкой из одного или нескольких пробелов, поэтому, чтобы использовать файл значений, разделенных вертикальной чертой, мы сообщаем awk, что наши поля разделены символом вертикальной черты |.
Из первой ссылки в предложении выше:
Значение (разделителя полей )можно изменить в awk-программе с помощью оператора присваивания ‘=’ (см. раздел Выражения присваивания ). Часто подходящим моментом для этого является начало выполнения до того, как будут обработаны какие-либо входные данные, так что самая первая запись читается с правильным разделителем. Для этого используйте специальный шаблон BEGIN (, см. раздел Специальные шаблоны BEGIN и END ).
Например, здесь мы устанавливаем значение (разделителя полей, также известного как FS)в строку "|":
cat test1.psv | awk 'BEGIN { FS = "|" } ; { print $1 }'
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])