藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

我的optics目錄下有兩個子目錄optics1和optics2,還有幾個文件,我想把optics目錄下的所有文件和子目錄下的所有文件中的「ASC」字符替換為「LER」,請各位大大指教,前面有位大大給出如下命令,但我試了不行:

sed -i 's/ASC/LER/g' $(grep -lR ASC *)

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

跟sed的版本有關
我的sed版本:
GNU sed version 4.0.5
參考一下下面的鏈接:
http://www.lslnet.com/linux/#forum/24/20041121/448814.html

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

謝謝大大!
我這裡,用
sed -e 's/ASC/LER/g' ~/optics/*
可以將所有文件中的ASC替換為LER,但只是完成替換,不保存,我不知道怎樣才能把替換後的文件保存。如果只有一個文件好辦
sed -e 's/ASC/LER/g'  old.sad > new.sad (不知道如何原名保存?)
但目錄下多個文件怎麼辦,請大大幫助,小弟感謝!

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

try:

for i in `find ~/optics/ -type f`; do sed -e 's/ASC/LER/g' $i > /tmp/tmpfile; mv /tmp/tmpfile $i; done


有點繁 :cry:希望 拋磚引玉 :wink:

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

try:

for i in `find ~/optics/ -type f`; do sed -e 's/ASC/LER/g' $i > /tmp/tmpfile; mv /tmp/tmpfile $i; done


試了,我的solaris好像不支持for命令,我用

sed -e 's/ASC/LER/g' file1 > /tmp/tmpfile; mv /tmp/tmpfile file1

可以實現單文件的替換存儲,但還是無法用上述命令實現多目錄多文件的情況。

solaris上有別的循環語句嗎,能不能試試別的?謝了!

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

#!/bin/sh
D_PATH=~/optics
SRC="ASC"
grep -r -s -l $SRC  $D_PATH > ./files.list
while read FILE
do
echo $FILE
mv $FILE $FILE.BAK
sed   's/ASC/LER/g' $FILE.BAK > $FILE
rm $FILE.BAK
done < ./files.list

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

sed -i "s/aaa/abc/g" *.txt

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

$ ls *
11.txt  22.txt

11:
aa.txt

22:
22.txt

$ cat $(find . -name "*.txt" -print)
sss

sss
bbc

sss
nbg
sss
$ sed -i "s/sss/ggg/g"  $(find . -name "*.txt" -print)
$ cat $(find . -name "*.txt" -print)
ggg

ggg
bbc

ggg
nbg
ggg

請教一個sed替換的問題,目錄下有子目錄和文件的情況!thx

grep -r -s -l option> ./files.list
cat files.list|whilte read line
do
edit $line --<<!
s/ABC/s//123/g
w
!
  done



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com