LinuxSir.cn,穿越时空的Linuxsir!

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

如何删除用户文件中的指定行[基本解决]

[复制链接]
发表于 2004-4-17 11:54:31 | 显示全部楼层 |阅读模式
当然只能用shell脚本实现!
发表于 2004-4-17 11:58:20 | 显示全部楼层
方法很多,望兄弟善用论坛搜索
如:
sed '/string/d' file
grep -v '/string/' file
...
发表于 2004-4-17 20:08:40 | 显示全部楼层
请教一个,反过来的,
怎样取得一堆文件的第一行?输出格式:
file1.1:第一行
file2.2:第一行
发表于 2004-4-17 21:42:53 | 显示全部楼层

  1. for file in $*;do echo -n $file:;sed 1q $file;done|more
复制代码

不知道行不行?
发表于 2004-4-17 22:29:20 | 显示全部楼层
最初由 天刀 发表
请教一个,反过来的,
怎样取得一堆文件的第一行?输出格式:
file1.1:第一行
file2.2:第一行

  1. for file in file*;do
  2.     [[ -f $file ]] && cat $file|sed -n 1p
  3. done
复制代码
发表于 2004-4-19 12:36:45 | 显示全部楼层
最初由 javalee 发表
  1. for file in file*;do
  2.    [color=red] [[ -f $file ]] [/color]&& cat $file|sed -n 1p
  3. done
复制代码


JAVALEE兄:

给我讲讲红的地方是什么意思,
[]是干什么的,?
为什么用了两次?

谢谢
发表于 2004-4-19 12:56:02 | 显示全部楼层
最初由 enruan 发表
JAVALEE兄:

给我讲讲红的地方是什么意思,
[]是干什么的,?
为什么用了两次?

谢谢

[[ -f $file ]] && cat $file|sed -n 1p
#如果$file存在,那么显示$file的第一行
#[[ -f $file ]] :是一个条件判断,这是比较新的写法,当然也可以用[ $file ]代替
或者:if [ -f $file ];then cat ...;fi
关于条件判断等语句的用法,见:
http://www.linuxsir.cn/bbs/showthread.php?threadid=28945
发表于 2004-4-19 12:59:17 | 显示全部楼层
补充一下。也可以这样用:
[ -f "$file" ] &&  cat $file|sed -n 1p
发表于 2004-4-19 13:09:02 | 显示全部楼层
  1. [color=red]for file in file*;[/color]do
  2.     [[ -f $file ]] && cat $file|sed -n 1p
  3. done
复制代码



谢谢。

为什么要判断文件是否存在?
  1. [color=red]for file in file*;[/color]do
复制代码


这里会有不存在的文件匹配上吗?
发表于 2004-4-19 13:12:22 | 显示全部楼层
最初由 enruan 发表
谢谢。

为什么要判断文件是否存在?
  1. [color=red]for file in file*;[/color]do
复制代码


这里会有不存在的文件匹配上吗?

因为如果不加[[ -f $file ]]的话,遇到fileX这样的目录会出现错误.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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