Как изменить и перечислить файл, содержащий строки в следующем формате: XXX-XXX-XXX-XXX-XXX

перезапуск моей машины и сетевой сервис не решили эту проблему в моем linux-боксе.

Я удалил файл /etc/sysconfig/network-scripts/ifcfg-eth0, а затем воссоздал файл с другим именем ifcfg-eth1со статическим IP-адресом. После этого я запустил сетевую службу, и она сработала.

0
01.11.2019, 18:26
3 ответа

Вы можете использовать awkкак:

awk -F'-' '/Smith$/{print $1"#"$2"#"$NF}' athletes

Это даст результат:

1995#05#Smith

Здесь awk будет искать строки, оканчивающиеся на Smith, и будет печатать первое, второе и последнее поле с #между ними.

Использованиеsed

sed -En 's/([^-]*)-([^-]*).*Smith$/\1#\2#Smith/gp' file.txt

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

1
28.01.2020, 02:39

Вы можете попробовать это:

grep "Smith$" file | tr "-" "#" | cut -d'#' -f1,2,5

Выход:

1995#05#Smith
0
28.01.2020, 02:39

Мы также можем сделать это ниже с помощью простой команды

 awk -F "-" '/Smith$/&&OFS="#"{print $1,$2,$NF}' file

выход

1995#05#Smith
0
28.01.2020, 02:39

Теги

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