亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 7544 | 回復(fù): 7
打印 上一主題 下一主題

[文本處理] sed替換的變量中有特殊字符報(bào)錯(cuò) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-06-21 00:05 |只看該作者 |倒序?yàn)g覽
我懷疑是我在sed中的變量中包含了/符號(hào)導(dǎo)致的,我要不用變量把變量寫死成 sed 's/\/js\/a.js/xxxx/g' 是不會(huì)報(bào)錯(cuò)的。

請(qǐng)問如何在sed中替換的變量中包含特殊字符怎么處理?謝謝了。

現(xiàn)狀如下:

代碼:
echo "replace jsp file : $target_tempfile --> $svn_file --> $file_version$svn_file"
sed -i 's#"$svn_file"#"$file_version""$svn_file"#g' $local_file


輸出錯(cuò)誤:
replace jsp file : /js/a.js=/Users/limy/work/svntest/project/jsp/index.jsp --> /js/a.js --> 135642/js/a.js
sed: 1: "/Users/limy/work/svntes ...": extra characters at the end of l command

論壇徽章:
2
水瓶座
日期:2014-02-28 14:20:09辰龍
日期:2014-06-16 13:18:51
2 [報(bào)告]
發(fā)表于 2014-06-21 01:13 |只看該作者
回復(fù) 1# limaoyuan
  1. svnfile=/js/a.js
  2. fileversion=33
  3. echo "sfeifjsjs/js/a.jsill" | sed  "s#$svnfile#$fileversion$svnfile#g"
  4. sfeifjsjs33/js/a.jsill
復(fù)制代碼

論壇徽章:
2
水瓶座
日期:2014-02-28 14:20:09辰龍
日期:2014-06-16 13:18:51
3 [報(bào)告]
發(fā)表于 2014-06-21 01:15 |只看該作者
回復(fù) 1# limaoyuan


    大半夜的不看球

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-06-21 05:46 |只看該作者
sed "..."

sed 's#'$xx'#'$xxx'#'

再不行就
set -x
然后執(zhí)行上面的命令,看看實(shí)際sed執(zhí)行的是什么,完事后
set +x

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-06-21 10:32 |只看該作者
回復(fù) 3# rogantianwz


    程序員之后就不知道啥是足球了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2014-06-21 10:43 |只看該作者
本帖最后由 limaoyuan 于 2014-06-21 10:43 編輯

回復(fù) 4# 用戶名注冊(cè)后不能更改

謝謝,用#'XXXXX'# 這種方式OK了。

最終方式:
  1. echo "replace jsp file : $target_tempfile --> $svn_file --> $file_version$svn_file"
  2. sed 's#'$svn_file'#'$file_version$svn_file'#' $local_file  > $local_file.replac
  3. mv $local_file.replace $local_file
復(fù)制代碼
PS: 把''去掉或是換成""都不能得到正確的結(jié)果。

另外我還有2個(gè)問題請(qǐng)教:

1.請(qǐng)問 sed 用 #號(hào)和用單引號(hào)給括起來為什么不會(huì)報(bào)錯(cuò)?
比如這一行代碼:sed 's#'$svn_file'#'$file_version$svn_file'#' $local_file  > $local_file.replace  我認(rèn)為sed的命令被#號(hào)后面的'號(hào)給結(jié)果掉啦(sed 's#'),為什么沒有被結(jié)束呢?

2.為什么我用 sed -i 's#'$svn_file'#'$file_version$svn_file'#' $local_file 修改本文件報(bào)錯(cuò)?弄得我只能重定向到新文件再把新文件重命名。

謝謝。


   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-06-21 11:56 |只看該作者
回復(fù) 6# limaoyuan

第二個(gè)問題我搞明白了,因?yàn)槲矣玫氖荕ACBOOK,所有SED -i后面要加上一個(gè)備份的后綴,也就是可以這樣

sed -i '' 's/xxxx/yyyy/g' filename

就可以了


   

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2014-06-23 14:19 |只看該作者
回復(fù) 6# limaoyuan

似乎沒有語言以引號(hào)作為結(jié)束符,shell下多個(gè)參數(shù)的分隔符是空格,這里也沒有出現(xiàn)。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP