linux下c 从文件中读取一行数据类型,linux试题答案及详解

本文详细介绍了在Linux环境下使用C语言从文件中读取一行数据的各种方法,结合具体实例,包括查找特定权限文件、查找零长度文件、文件更改时间判断、文件所属组筛选、文本处理以及使用find、grep、awk、sed、tr等工具进行文件操作的实用技巧。通过这些案例,读者可以深入理解Linux系统中文件操作和文本处理的常用命令和编程技巧。
摘要由CSDN通过智能技术生成

1、查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;

find . -type f -perm 644-exec ls -l {} \;

.     当前目录

-type 查找某一类型的文件

f     普通文件

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l – 符号链接文件。

-perm 按照文件权限来查找文件

-exec 选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号

r=4,w=2,x=1 ,十进制表示

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=5

2、查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

find / -type f -size 0-exec ls -l {} \;

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

3、查找/zsh目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

find /zsh -type f -mtime+7 -ok rm {} \;

-mtime -n +n  按照更改时间或访问时间查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。

rm 删除查找到的文件,删除前给出提示

4、查找系统中所有属于root组的文件 并列出它们的完整路径.

find / -group root -execls -l {} \;

-group 按照文件所属的组来查找文件。

5、myfile.html内容如下:

This is whatI meant.

删除HTML标记,也就是要得到:

This is what I meant.

sed's/]*>//g' myfile.html

s/pattern1/pattern2/将指定行中, 将第一个匹配到的pattern1,替换为pattern2.

awk'{gsub(/]*>/,"",$0);print}' myfile.html

gsub(r,s,t)  在整个t中用s替代r

6、使用tr命令将trkh.txt文件的空行删除

tr -s "[\012]"< trkh.txt 或 tr -s ["\n"] < trkh.txt

-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

tr -s "[\012]" 用单独的换行替换每一序列的一个或多个换行

7、在txt目录下搜索所有包含有‘the’单词的.c文件,列出文件名

grep -l ‘the’ *.c

ls | grep'the.*\.c$'  匹配含the且以.c结尾的文件(正则表达式\.用来匹配点字符)

-l只给出包含给定模式的文件列表,而不给出文件中的匹配行

8、使用grep将express文件里以数字开头的行删除掉

grep -v ‘^[0-9]’ express

-v 显示不包含匹配文本的所有行

写出实现下列功能地命令:

9.查出所有用户名至少有4个字符地己登录用户

users | grep'.....*'

who | awk '{if ($1~/.....*/) print $1}'

10.查出系统中所有用户标识号大于99的用户

cat /etc/passwd | awk'BEGIN{FS=":"}{if ($3>99) print $1}'

FS字段分隔符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值