Search
搜尋一行並替換行
false###File.txt many rows ###online = false --> ONE SHOT import (delete all table contents before importing) ###online = true --> DIFFERENTIAL import (import without clean the table contents) ###online = true many rows
我想選擇單獨線上的行並將 true 替換為 false 但它不必是第 3 行,它可以出現在文件中的任何位置
我的嘗試:test.sh
online=true perl -i -p -e "s/^(online[ ]*=[ ]*).*$/\1 $online/" File.txt
它完成了工作,但在 false 之前添加了一個空格。有人可以更正上面的命令,這樣它就不會在單詞 true 之前添加空格
你可以試試
sed
:sed -i '3s/true/false/' file.txt
如果要將原始文件保留為
file.txt.bak
:sed -i.bak '3s/true/false/' file.txt
此外,如果您想在同一行中替換多次出現的
true
with :false
sed -i.bak '3s/true/false/g' file.txt
**編輯:**根據您澄清的查詢,試試這個:
sed -i.bak '/DIFFERENTIAL\|[^t][^r][^u][^e]$/!s/true/false/' file.txt
這將在沒有“DIFFERENTIAL”的行以及“true”出現在行尾的行中將“true”替換為“false”。