2015-09-29 22 views
0

我要替換的第一個值(在第一列和行所以這裏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 

但是,當我做到這一點,他把所有的第一列變成了兩個。我試圖改變報價,但它什麼都不做。

回答

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
perl -p0e 's/(\d+)/$1+1/e' file