我想小寫 C 代碼中的所有頭檔案名,但是“/”妨礙了我無法使用 sed 和 awk 或 grep 命令正確轉換它。
#include陳述句是一行長,所以我可以把這部分小寫,但是當我使用規范轉換 's/before/after/' 時,如果前后都有“/”,它似乎無法正確轉換字串,表示目錄。如果你試圖用“我試過用”來轉義,但它不起作用。有什么辦法可以正確轉換它?
uj5u.com熱心網友回復:
有什么方法可以正確轉換它嗎?
使用一些不同的分隔符。
sed 's~before~after~'
使用 GNU sed,您可以將其轉換為小寫:
sed 's~BEFORE~\L&~'
uj5u.com熱心網友回復:
這是我在 GNU 上的試用代碼。我嘗試過交換 sed 的分隔符,但效果不佳。
- 用于交換標題字母檔案名的文本代碼:test.c
#include /A/B/INC/HEADER.h
void main(void)
{
int A,B,C,d,e,f;
}
- 重擊代碼
#!/bin/bash
echo "start"
str1=$(awk "/#include/" test.c)
echo $str1 ==> #include /A/B/INC/HEADER.h
str2=$(echo ${str1} | tr 'A-Z' 'a-z')
echo $str2 ==> #include /a/b/inc/header.h
str3='/'
str4='s/'
str5='g'
str6="$str4$str1$str3$str2$str3$str5"
==>s/#include /A/B/INC/HEADER.h/#include /a/b/inc/header.h/g
echo $str6
sed -e ${str6} test.c >evi ==> it doesn't work well
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/393526.html
上一篇:從while回圈匯出到csv檔案
