我想替换第一个值(在第一列和第一行,所以这里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
但是当我做到这一点时,他将所有第一列改为二。我试着改变报价,但它什么也没做。
答案 0 :(得分:1)
将脚本限制为仅限第一行,即
sed '1s/old/new/'
awk可能是一个更好的工具。
awk 'NR==1{$1=$1+1}1'
为第一行添加1到第一个字段并打印。可以改写为
awk 'NR==1{$1+=1}1'
或
awk 'NR==1{$1++}1'
答案 1 :(得分:1)
perl -p0e 's/(\d+)/$1+1/e' file