Как заменить j-й столбец i-й строки значением из переменной в bash - PullRequest
2 голосов
/ 23 марта 2020

У меня есть файл, который выглядит следующим образом:

6 6 1
0 0 0
0.0 0.0 0.0

2.938947259546411 -5.090405972278119 0.000000000000000

, и я хочу заменить первый столбец первой строки значением из var1, а второй столбец первой строки значением из var2

Значения чисел могут меняться; более того, в первой строке есть повторяющиеся значения, поэтому я не могу использовать такие вещи, как sed -i "s/6/$var1/"file

. Можно ли мне изменить файл на

3 2 1
0 0 0
0.0 0.0 0.0

2.938947259546411 -5.090405972278119 0.000000000000000

, позволив переменной var1 быть 3 и var2 будут 2?

1 Ответ

5 голосов
/ 23 марта 2020

awk справится с этим легко:

var1='3'
var2='2'
awk -v c1="$var1" -v c2="$var2" 'NR==1{$1=c1; $2=c2} 1' file

3 2 1
0 0 0
0.0 0.0 0.0

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