#linux #shell #replace
Вопрос:
у меня есть существующий идентификатор пользователя, и я хотел изменить эти идентификаторы на имя пользователя, например
UserID.txt
Group1 = 1234,1002,2004
group2 = 3214,0032,6632
1234 = Read
6632 = Write
Input_file.csv
найдите столбец 1 и замените его столбцом 2 из файла ввода.csv
1234 onetofour
1002 ten2
2004 tennyfour
3214 threefouteen
0032 thirtytwo
6632 Sixtytwo
Используя записи Input_file.csv, я хочу заменить идентификаторы на имена внутри UsersID.txt
Ожидаемые результаты:
Group1 = onetofour,ten2,tennyfour
group2 = threefouteen,thirtytwo,Sixtytwo
onetofour= Read
Sixtytwo = Write
Я предпочитаю сценарии оболочки здесь, любезно предложите то же самое.
Спасибо
Комментарии:
1. Поскольку это не бесплатная услуга кодирования, мы были бы признательны, если бы сначала попытались. Не публикуйте его в виде комментария, изображения, таблицы или ссылки на сторонний сервис, а используйте текст и включите его в свой исходный вопрос. Спасибо.
2. Привет, Джеймс, я уже пробовал это вручную в командной строке с помощью sed. было бы здорово, если бы вы могли предложить то же самое.
Ответ №1:
Я люблю баш, и у меня было немного свободного времени.
bash-4.1$ cat UserID.txt
Group1 = 1234,1002,2004
group2 = 3214,0032,6632
1234 = Read
6632 = Write
bash-4.1$ data=$(cat Input_file.csv); awk '{print $1"/"$2}' <<<"$data" | xargs -I {} sed -i 's/{}/g' UserID.txt
bash-4.1$ cat UserID.txt
Group1 = onetofour,ten2,tennyfour
group2 = threefouteen,thirtytwo,Sixtytwo
onetofour = Read
Sixtytwo = Write
bash-4.1$
Комментарии:
1. Спасибо Тебе, ангшуман, я попробую это и обновлю 🙂
2. Я в состоянии достичь своей цели, чем много 🙂