当前位置: 技术问答>linux和unix
高分求简单的unix shell问题
来源: 互联网 发布时间:2016-02-16
本文导语: 现在文件内容 如下: ./maps/test1.gps.template 内容也可能为: ./maps/temp/test2.gps.template test3.template 内容 想得到以下结果: 1. 文件名称:test1.gps.template test2.gps.template test3.template 2. (去掉template)目标文件及其路径:...
现在文件内容 如下:
./maps/test1.gps.template
内容也可能为:
./maps/temp/test2.gps.template
test3.template
内容
想得到以下结果:
1. 文件名称:test1.gps.template
test2.gps.template
test3.template
2. (去掉template)目标文件及其路径:
./maps/test1.gps
./maps/temp/test2.gps
test3
路径可能有多级,但"."号最多就两个。
1. 我用:
echo "./maps/temp/test2.gps.template" |awk -F'.' '{print $2} '
不能达到理想的效果。。有谁有好办法吗?
主要是不知道路径可能是多层的,不知道有多少个 “/”号。
2. Unix里替换字符命令是什么?我想是第2步把template替换就OK了。
接触UNIX不久...请大家帮帮忙...
./maps/test1.gps.template
内容也可能为:
./maps/temp/test2.gps.template
test3.template
内容
想得到以下结果:
1. 文件名称:test1.gps.template
test2.gps.template
test3.template
2. (去掉template)目标文件及其路径:
./maps/test1.gps
./maps/temp/test2.gps
test3
路径可能有多级,但"."号最多就两个。
1. 我用:
echo "./maps/temp/test2.gps.template" |awk -F'.' '{print $2} '
不能达到理想的效果。。有谁有好办法吗?
主要是不知道路径可能是多层的,不知道有多少个 “/”号。
2. Unix里替换字符命令是什么?我想是第2步把template替换就OK了。
接触UNIX不久...请大家帮帮忙...
|
很简单的啊
list=`cat 文件名`
for aline in ${list};do
echo `basename ${aline}`
done
for aline in ${list};do
echo `basename ${aline}`|sed 's#.template##g'
done
list=`cat 文件名`
for aline in ${list};do
echo `basename ${aline}`
done
for aline in ${list};do
echo `basename ${aline}`|sed 's#.template##g'
done
|
basename `echo ./maps/temp/test2.gps.template`
或则
basename ./maps/temp/test2.gps.template
basename不能用管道作为输入.
|
先将 ./maps/temp/test2.gps.template 用 / 作分隔符分开字符串,取出
test2.gps.template 后再用 . 作分隔符分别取出 test2 + gps + template
这时你想怎样做就怎样做了.
test2.gps.template 后再用 . 作分隔符分别取出 test2 + gps + template
这时你想怎样做就怎样做了.