2016-11-03 4 views
0

У меня есть файл с данными, хранящимися в этом форматеЗамена строки в определенном положении между известными разделителей в скорлупе

ID;Name;Surname;Country 

И мне нужно, чтобы быть в состоянии найти и заменить определенный фрагмент данных просто зная идентификатор и положение данных, используя ';' как разделители.

Вид как результат

Grep -n "ID" [файл] | cut -d ";" -f [положение]

Но замена с заданным пользователем строкой вместо отображения

Я считаю, что нужно использовать СЭД, но ничего я нашел не работало.

Редактировать: Пользователь будет из меню, в котором они выбирают, что нужно изменить и предоставить идентификатор, после чего им будет предложено ввести заменяющую строку и узнать структуру хранимых данных (ID/Name/Surname/Страна) строка будет соответственно заменена в текстовом файле.

ответ

2

с AWK:

echo 'ID;Data1;Data2;Data3' | awk -v id="ID" -v col=3 -v repl="foo" -F';' 'BEGIN{OFS=";";} $1==id {$col=repl;}1' 

Выход:

 
ID;Data1;foo;Data3 
+0

Спасибо, я должен просто перенаправить все это в файл, чтобы сделать его постоянным или есть более чистый способ? – user2989371

+0

Я предлагаю перенаправить свой вывод в файл: 'awk ...> new_file' – Cyrus

 Смежные вопросы

  • Нет связанных вопросов^_^