Как заполнить файл значением по умолчанию, если мы знаем положение, в котором необходимо разместить столбец в файле? - PullRequest
0 голосов
/ 07 июня 2019

Предположим, у меня есть файл, содержащий данные:

Emp_Id|Name|Age
100156|Sam|23
1508|Amy|26
1234|Annie|30

Итак, у меня есть два столбца, которые мне нужно добавить: Dep_Id с номером типа данных (на 2-й позиции в exis. File)

Department с типом данных varchar (на 5-й позиции в существующем файле)

Теперь, если я знаю позицию, в которой мне нужно добавить столбцы, как подготовить код в unix для заполнения новых столбцов значениями по умолчанию (например, если это varchar, дать default и если его число, дать 0) в существующий файл, содержащий данные.

Вывод я хочу вот так:

Emp_Id|Dep_Id|Name|Age|Department
100156|0|Sam|23|default
1508|0|Amy|26|default
1234|0|Annie|30|default

1 Ответ

0 голосов
/ 07 июня 2019

Вы можете сделать это с Awk:

awk -F'|' 'NR == 1 { print $1 FS $2 FS $3 FS "Department" } NR > 1 { print $1 FS "0" FS $2 FS $3 FS "default" }' file.txt

В результате вы получите ожидаемый результат:

Emp_Id|Dep_Id|Name|Age|Department
100156|0|Sam|23|default
1508|0|Amy|26|default
1234|0|Annie|30|default

Пояснение:

  • -F'|' указывает awk использовать | в качестве разделителя полей. Это позволяет вам ссылаться, например, на первое поле как $1.

  • NR относится к номеру строки. Для первой строки (NR == 1) мы хотим напечатать 1-й столбец, затем разделитель полей (FS, который мы установили на |), 2-й столбец и т. Д.

  • Для строк больше 1 мы печатаем, аналогично первой строке, данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...