LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 794|回复: 11

请教两个问题~~~(DONE)

[复制链接]
发表于 2009-4-26 21:12:45 | 显示全部楼层 |阅读模式
第一个问题:
一个文件,大概几万行,全部内容都是如下格式,有什么方法可以把“->”左右两边的内容对调?

  1. ****** -> ******
  2. ****** -> ******
  3. ****** -> ******
复制代码


第二个问题:
如果unlink掉一个目录下所有的软链接?
发表于 2009-4-26 22:28:30 | 显示全部楼层
第一个问题可以用awk里面的split函数搞定
cat file | awk '{split($1,xchange,"->");print "xchange[2]" -> "xchange[1]"}' >> newfile
利用"->"作为分割依据分割前后内容,然后对换位置。
第二个问题不太清楚,不过应该可以利用find -exec 或者用个bash脚本搞定的。

查了一下find的manpage:
find dir -type l -exec rm {} \;
回复 支持 反对

使用道具 举报

发表于 2009-4-26 22:43:26 | 显示全部楼层
第一个问题:用vim中的正则表达式替换
  1. :%s/\(.*\) -> \(.*\)/\2 -> \1
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-4-26 22:49:44 | 显示全部楼层
说个图形化方法:把这文本文件导入excel表格/ooo的也可以,使用->作为分隔符,然后对调两列位置。再导出为文本文件,也使用->作为分隔符
回复 支持 反对

使用道具 举报

发表于 2009-4-26 23:32:00 | 显示全部楼层
赞三楼
字数补丁
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 13:45:26 | 显示全部楼层
第二个问题呢?
回复 支持 反对

使用道具 举报

发表于 2009-4-27 13:48:05 | 显示全部楼层
unlink不就是删除吗?把链接删除就可以了,二楼答案
回复 支持 反对

使用道具 举报

发表于 2009-4-27 13:50:58 | 显示全部楼层
3楼好猛。。。
而excel,我会...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-27 14:15:58 | 显示全部楼层
Post by hubert_star;1980139
unlink不就是删除吗?把链接删除就可以了,二楼答案

我的意思是查找并unlink掉一个目录下所有软链接
回复 支持 反对

使用道具 举报

发表于 2009-4-27 14:36:11 | 显示全部楼层
$ cat 1.txt
111 -> 222
333 -> 444
555 -> 666
777 -> 888
999 -> 000

$ awk -F"[->]" '{print $3" -> "$1}' 1.txt
222 -> 111
444 -> 333
666 -> 555
888 -> 777
000 -> 999
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表