背景:檔案a,檔案b,檔案格式一致,有兩列,第一列為key,第二列為value。
目的:將檔案a中的內容插入到檔案b中,不能在最後,不能有重複key(我的key和value用tab鍵分割)
實現:我的實現很low,就是查詢key,若有再刪除再寫入,若無則直接寫入。
增加了全域性變數a是為了插入b檔案後的順序與a一致,非必須操作。如下主要記錄兩方面內容,乙個是shell中變數的自增;乙個是sed命令的介紹
a=0cat $filenamea |awk '
nr>0
'|while
read key value
dolet a+=1
line=`sed -n '/'"
$key
"'/=
' $filenameb`
if [ ! -n "
$line
"]; then
sed -i "
$a a$key $value
" $filenamebelse
sed -i "
$line d
" test/$dbname
sed -i "
$a a$key $value
" $filenamebfi
done
一 shell中變數的自增方式
a=$(($a+1))a=$[$a+1
]a=`expr $a + 1
`let a++let a+=1
((a++))
注意變數a定義的位置。補充一句shell全域性變數的定義和使用
[mobdev@ip-192-168-1-15:52.77.116.218 advanced_search]$export a=1[mobdev@ip-192-168-1-15:52.77.116.218
advanced_search]$echo $a
1
二 sed命令介紹
sed命令使用簡單記錄
sed s pattern replace string file sed.txt中對每行的第乙個lifeng用lf替換 sed s lifeng lf sed.txt 原始檔內容不會變的 要替換所有內容,命令尾部加引數g sed s lifeng lf g sed.txt 要從每行的第二處內容進行...
sed使用記錄
一 插入批量內容 批量修改檔案內容一般使用sed,但是在插入多行內容和不同格式的時候就遇到困難了,今天終於知道怎麼處理了,記錄一下!插入以下內容。變更前 apiversion extensions v1beta1 kind deployment metadata spec apiversion ex...
sed命令使用
sed命令使用 常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操...