#shell #awk
#оболочка #awk
Вопрос:
У меня есть текстовый файл, который выглядит следующим образом.
this-is-name-1
this-is-name-2
...
Я пытаюсь добавить a ,0
в конец определенной строки, используя gawk,
gawk -i inplace -v n=',0' -v s='this-is-name-1' '$1 == s { $2 = n } 1' file
Но, как вы можете видеть, между ними есть пробел.
this-is-name-1 ,0
this-is-name-2
...
Какой правильный синтаксис gawk, чтобы в нем не было пробела, поэтому вместо этого он выглядит так
this-is-name-1,0
this-is-name-2
...
Ответ №1:
Используйте запятую в качестве разделителя выходных полей:
gawk -i inplace -v OFS=',' -v n='0' -v s='this-is-name-1' '$1 == s { $2 = n } 1' file
# ..............^^^^^^^^^^.......^ (no comma here)
Ответ №2:
Измените $2 = n
на $0 = $0 n
. Ваш текущий код добавляет 2-е поле, поэтому awk должен добавить разделитель между полями.