Полевой сепаратор в awk

Он хранит свои метаданные в /etc/.etckeeper файле , который также отслеживается в репозитории, используемом для хранения ] / и т. д. .

0
08.10.2018, 07:20
3 ответа

(Обновлено для обновленного вопроса)

Похоже, вы хотите извлечь первое слово после пробела до следующей запятой.

$ awk -F ' ' '{ split($2,a,","); print a[1] }' <file
awq
ase
acc

Это обрабатывает данные как разделенные пробелом -, затем берет второе поле, разделенное пробелом -, явно разделяет его на запятые и печатает первую результирующую строку из этого результата.

В качестве альтернативы, сsed:

$ sed 's/^[^ ]* //; s/,.*$//' <file
awq
ase
acc

Здесь используются две замены: сначала удаляется бит до первого пробела, а затем бит после запятой. Оставшаяся строка печатается.

2
28.01.2020, 02:31
Command: for i in `echo "cbdb awq,sdcsidsjo hhhd xsdunh ase, xsdfc xdyun acc,cuiov dfvgf" | awk -F "," '{print $1,$2,$3}'`;   do echo $i | awk '/^a/{print $0}'; done|tr "\n" " "

вход

cbdb awq,sdcsidsjo hhhd xsdunh ase, xsdfc xdyun acc,cuiov dfvgf

выход

команда

for i in `echo "cbdb awq,sdcsidsjo hhhd xsdunh ase, xsdfc xdyun acc,cuiov dfvgf" | awk -F "," '{print $1,$2,$3}'`;   do echo $i | awk '/^a/{print $0}'; done|tr "\n" " "

выход

awq ase acc
0
28.01.2020, 02:31

С awk:

<infile awk -F ' ' '{ sub(/,.*$/,"",$2); print $2 }'

С GNU awk:

<infile awk -F ' ' '{print gensub(/,.*$/,"",1,$2)}'

С СЭД:

<infile sed 's/^[^ ]* //;s/,.*//'
0
28.01.2020, 02:31

Теги

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