Bash 替换第一个值
我想替换第一个值(在第一列和第一行中,这里是1)并向这个值添加一个值,这样我就有了这样一个文件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
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