因需要調整好多檔案中涉及異常處理的語句。每個檔案中要修改的,和修改後的**是一樣的,所以想到使用sed來替換,使用find加grep -l給sed傳參。
sed -i 's/source_str/target_str/g p'
`find path -type f |
xargs
grep -l "source_str"
`
結果悲劇了,編譯檔案報錯一看檔案target_str竟然有兩行,history檢視自己的命令,慘了,沒辦法,寫了下面的指令碼來刪除錯誤的資料,f為編譯報錯的記錄檔案。
import re
import os
rm =
'/opt/rm'
f =open
(rm)
c = re.
compile
(r".*?/(\w+\.py).*?\s([0-9])"
)newlines = f.read(
).split(
':')
for newline in newlines:
if newline:
file
=str
(re.search(c,newline)
.group(1)
) line = re.search(c,newline)
.group(2)
print
file
print line
os.system(
"sed -i '%sd' `find /opt -name %s`"
%(line,
file))
print
("sed -n '%sd' `find /opt -name %s`"
%(line,
file
))
悲劇加喜劇
今天是第五次個人賽,沒想到,只做出1題,是最短路徑問題。第一題是字串求最長公共字首,很快就寫好了 提交超時了,很快我被它嚇住了,因為上次組隊賽做了最長公共字尾,現在還沒理解啊,現在又弄個字首。我換了方法,先排序,再乙個個判斷,沒想到還是超時,而最後一題的揹包問題我之前做過的!忘記了。而且當時也理解錯...
sed 文字替換
呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s 刪除 d命令 sed 2d example 刪除example檔案的第二行。sed 2,d example 刪除example檔案的第二行到末尾所有行。se...
sed 文字替換
sed s front back aa.txt sed s front back aa.txt 這兩個命令的作用是一樣的 可以通過vi介面中操作 s front back g s front back 都是全域性替換 將檔案由檢視模式切換成命令模式 上面的 可以替換成 n 指定行數例如第一行 1s ...