一道 linux 的shell编程的题目
在指定目录中查找含有某字符串的文件。
比如目录A 下面有一个文件a.txt,其内容
如下:
aaaa bbbb cccc
如果要找的字符串为:aaaa,则应返回该文件名
称。
要求:
(1)使用方法:程序名 目录名称 所要找的字符串。
(2)若未指定目录名称,则从当前目录查找。
(3)要求给出程序执行的真实的在Linux下的执行结果。
(4)给出含有指定字符串的文件所在行。比如上例,应该返回为第一行。
1-3题已经解决了代码如下:
#/bin/bash
if [$2 -eq ""]
then
for file in $(ls *.txt)
do
more $file|grep -l $1 $file
done
else
for file in $(ls $1/*.txt)
do
more $file|grep -l $2 $file
done
fi
但是第四个问题怎么解决。大家帮忙看看啊,谢谢!!
grep加上-n参数不就可以显示所在行了吗,不知道楼主要的是不是这个意思
改成这个样子:more $file|grep -n $2 $file
显示的是行号加那行的内容。
能不能只显示行号?
more $file|grep -n $2 $file | cut -d ":" -f 1-2
如果不想要文件名,就是
more $file|grep -n -h $2 $file | cut -d ":" -f 1
如果不要文件名,这样也行
more $file|grep -n $2 $file | cut -d ":" -f 2
直接grep不行吗? grep -n $2 $file
前面加上more好像没什么必要
grep就可以满足你的需求啊,难道不是吗?
哦。谢谢各位!
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......
我目前在本地的linux上写了一个swing的界面,想通过这个界面来控制其它电脑的linux重启。
我知道用Runtime.getRuntime().exec("shutdown -r");可以控制本机Linux重启,但是怎么控制远程的linux重启呢? ......
有什么好的Linux教程吗?
小弟谢过~
[问题点数:0分]
google
据说鸟哥的私房菜不错。
鸟哥的Linux私房菜
更多的再这上面去搜索一下很LIUNX书籍还不错
引用
google
正解
鸟哥的Linux私房菜 ......
linux初始化时把支持的物理内存都映射到page table中,之后进程需要内存时,也是映射到这个物理内存中,如此说来,linux初始化时创建的page table和进程中创建的page table指向同一块物理页面吗?这样做的目的是什么 ......