首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Linux 批量替換含空格字符串:sed 實戰

     編輯:程式設計綜合問答

需求

將多個文件中的 //#define LOG 0 替換為 #define LOG 0(去掉開頭 //)。

單文件命令

sed -i "s@//#define LOG 0@#define LOG 0@" a.txt
  • -i:原地修改文件。
  • @ 作為分隔符,避免與 /、# 衝突。

多文件遞歸替換

find . -type f -name "*.c" -o -name "*.h" | xargs sed -i "s@//#define LOG 0@#define LOG 0@"

備份原文件

sed -i.bak "s@//#define LOG 0@#define LOG 0@" *.c *.h

會生成 .bak 後綴的備份文件。

進階:正則匹配任意空白

sed -i -E "s@^//\s*#define\s+LOG\s+0@#define LOG 0@" *.c
  • -E 啟用擴展正則。
  • \s* 匹配任意空白字符(空格/Tab)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved