分页: 1 / 1

文本替换

发表于 : 2011-06-29 11:33
mad_frog
大家好,我有一个文本文件file1.txt内容为:
Bishop/fhsalfhsl
Bishop/KFXBishop
Bishop/test1
Relay/test1
Relay/test2
Server/Maps/DF-ShuangShiZhenChengLou.ut2
Server/Maps/YL_KeYanSuo.ut2
Server/Maps/DF-ZhanShuXiaoWu.ut2
Realmz2/krealmlib.so
Realmz2/lottery.csv
Realmz2/UsePro.csv
想实现效果 ,并保存到file2.txt中
/home/A/fhsalfhsl
/home/A/KFXBishop
/home/A/test1
/home/A/test1
/home/A/test2
/home/A/Server/Maps/DF-ShuangShiZhenChengLou.ut2
/home/A/Server/Maps/YL_KeYanSuo.ut2
/home/A/Server/Maps/DF-ZhanShuXiaoWu.ut2
/home/A/Realmz2/krealmlib.so
/home/A/Realmz2/lottery.csv
/home/A/Realmz2/UsePro.csv
原文远不止这些内容,大家有什么好的实现方法,谢谢大家了!!

Re: 文本替换

发表于 : 2011-06-29 11:36
lubcat
哦。看差了。
听lx的~~

Re: 文本替换

发表于 : 2011-06-29 11:37
eexpress
● cat tmp |sed -e 's/^Bishop/\/home\/A/g' -e 's/^Relay/\/home\/A/g' -e 's/^Server/\/home\/\A\/Server/g' -e 's/^Realmz2/\/home\/A\/Realmz2/g'
没细化的。简单实现。

Re: 文本替换

发表于 : 2011-06-29 11:38
eexpress
● cat tmp |sed -e 's/^Bishop/\/home\/A/g' -e 's/^Relay/\/home\/A/g' -e 's/^\(Server\|Realmz2\)/\/home\/\A\/\1/g'

Re: 文本替换

发表于 : 2011-06-29 11:39
eexpress
● cat tmp |sed -e 's/^\(Bishop\|Relay\)/\/home\/A/g' -e 's/^\(Server\|Realmz2\)/\/home\/\A\/\1/g'

Re: 文本替换

发表于 : 2011-06-29 11:41
mad_frog
能给判断吗,要是我前面的两种情况有很多呢,那不得写疯了

Re: 文本替换

发表于 : 2011-06-30 11:19
fnan
sed -e 's#^(Bishop/|Relay/)##' -e 's#^#/home/A/#' file1.txt > file2.txt

Re: 文本替换

发表于 : 2011-06-30 22:36
sk1418
awk的

代码: 全选

awk -F'/' 'BEGIN{h="/home/A"; OFS="/"} {$1=$1~/^(B|Rel)/?h:h"/"$1; print $0}' file1.txt
要是你前面两种情况非常。把那些情况放另一个文件里,awk多读一个文件判断一下就行了

Re: 文本替换

发表于 : 2011-07-09 11:17
link_01

代码: 全选

sed -r '/^Server|Realmz2/s#^#/home/A/#; s#^\w+#/home/A#' tmp.txt
就是不知道大量文本时有没有匹配错误的