У меня есть один fichero.txt
со следующей информацией:
1;Pepito;Flores Rubias;3;IT;OCT;PT
2;Juan;Ramirez Rubias;3;IT;LM;PY
3;Joan;Trico Traco;4;IM;ENG;IR
4;Jose;Trigo Limpoio;5;UT;DOM;WE
Первая колонна - число пользователя, определенного переменной $numero
.
Я нуждаюсь в том, чтобы смочь консультировать последние три линии пользователя, давая число пользователя, который выполняет программу.
А именно, я нуждаюсь в коде, который ищет число, которое ты даешь ему (что соответствует первой колонне и только первой колонне), он изолировал эту линию, и показал тебе последние три колонны этого пользователя. Не, если я объяснился.
Это у меня есть так, но просвет, оно я не функционирует:
cat fichero.txt | (awk -F ";" '{$1}' | grep "$numero") | awk -F ";" '{print $2, $3 ":\n " $5 "\n 2ª " $6 "\n 3ª " $7 "\n" }'
Я надеюсь понять хорошо, имей в виду, что я не использую awk
. Этот файл ввода:
$ cat fichero.txt
1;Pepito;Flores Rubias;3;IT;OCT;PT
2;Juan;Ramirez Rubias;3;IT;LM;PY
3;Joan;Trico Traco;4;IM;ENG;IR
4;Jose;Trigo Limpoio;5;UT;DOM;WE
Сейчас какие-то примеры:
$ numero=3
$ cat fichero.txt | grep "^$numero;" | cut -d";" -f5-7
IM;ENG;IR
$ numero=1
$ cat fichero.txt | grep "^$numero;" | cut -d";" -f5-7
IT;OCT;PT
Просто я ищу nГєmero пользователя, определенного с grep
включая характер ;
:
grep "^$numero;"
С помощью cut
я делю ее lГ-nea используя как delimitador (с нею opciГіn -d
) характер ;
и поля (с нею opciГіn -f
) от 5 до 7:
cut -d";" -f5-7
, Если ты хочешь заменить характер ;
, например, местом vacГ - или, ты можешь добавлять команду tr
из этой формы:
$ cat fichero.txt | grep "^$numero;" | cut -d";" -f5-7 | tr ";" " "
IT OCT PT
Или возможно с разрывом lГ-nea:
$ cat fichero.txt | grep "^$numero;" | cut -d";" -f5-7 | tr ";" "\n"
IT
OCT
PT
В awk
serГ - в просто:
$ awk -F\; -v numero=1 '$1==numero{print $5,$6,$7}' fichero.txt
С разрывами lГ-nea:
$ awk -F\; -v user=1 '$1==numero{print $5,$6,$7}' OFS='\n' fichero.txt
IT
OCT
PT
numero=3
grep ^$numero file.txt| awk -F";" '{print $5,$6,$7}'
IM ENG IR
, Если то, в чем ты нуждаешься, состоит в том, чтобы они появились в формате колонна:
grep ^$numero file.txt| awk -F";" '{print $5,"\n"$6"\n"$7}'
IM
ENG
IR