Bash 替换第一个值

Bash 替换第一个值,bash,sed,Bash,Sed,我想替换第一个值(在第一列和第一行中,这里是1)并向这个值添加一个值,这样我就有了这样一个文件 1 1 1 2 5 1 6 我用这个句子 read -r a < file echo $aa sed "s/$aa/$(($aa + 1))/" file # or sed 's/$aa/$(($aa + 1))/' file read-ra

我想替换第一个值(在第一列和第一行中,这里是1)并向这个值添加一个值,这样我就有了这样一个文件

1
1 1
2 5
1 6
我用这个句子

read -r a < file
echo $aa
sed  "s/$aa/$(($aa + 1))/" file
# or 
sed  's/$aa/$(($aa + 1))/' file
read-ra

但当我这样做的时候,他把第一列全部改成了第二列。我试图更改引用,但没有任何效果。

仅将脚本限制在第一行,即

sed '1s/old/new/'
awk可能是一个更好的工具

awk 'NR==1{$1=$1+1}1'
对于第一行,在第一个字段中添加1并打印。可以重写为

awk 'NR==1{$1+=1}1'

awk 'NR==1{$1++}1'
perl -p0e 's/(\d+)/$1+1/e' file