Shell—文件内容操作
读取文件的每一行内容并输出
- #!/bin/bash
- # 方法1
- while read line
- do
- echo $line
- done < a.txt
- # 方法2
- cat a.txt | while read line
- do
- echo $line
- done
- # 方法3
- # for line in `cat a.txt`
- for line in $(cat a.txt)
- do
- echo $line
- done
文件内容排序工具 sort 和 uniq
sort:sort是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。
用法:sort [选项] 参数
- -n:按照数字进行排序
- -r:反向排序
- -u:等同于uniq,表示相同的数据仅显示一行
- -f:忽略大小写 -b:忽略每行前面的空格 -M:按照月份进行排序
- -t:指定分隔符,默认使用Tab键分隔 -o <输出文件>:将排序后的结果转存至指定文件 -k:指定排序区域
- [root@localhost ~]# sort /etc/passwd
- [root@localhost ~]# sort -r /etc/passwd
uniq:去除重复行,并统计每行出现的次数(相邻行)。uniq工具通常与sort命令结合使用,用于报告或者忽略文件中的重复行。
用法:uniq [选项] 参数
- -c:进行计数
- -d:仅显示重复行(这里的重复行,仅限相邻行重复。如果有两行重复但是不相邻,则不满足)
- -u:仅显示出现一次的行
- [root@localhost ~]# uniq -c test.txt
- [root@localhost ~]# uniq -u test.txt
- [root@localhost ~]# sort -n test.txt | uniq -c # 删除test.txt文件中重复行,并统计该行重复次数
- [root@localhost ~]# sort -n test.txt | awk '{if($0!=line)print; line=$0}'
- [root@localhost ~]# sort -n test.txt | sed '$!N; /^\(.*\)\n\1$/!P; D'
统计文件的行数、字数、字节数, 并将统计结果显示输出
- [root@localhost ~]# wc -l /etc/passwd # 统计文件的行数(里面内容的行数)
- [root@localhost ~]# wc -c /etc/passwd # 统计文件的字节数
- [root@localhost ~]# wc -m /etc/passwd # 统计文件的字符数
- [root@localhost ~]# wc -w /etc/passwd # 统计单词出现次数
- [root@localhost ~]# wc - lcw file1 file2
- [root@localhost ~]# ls -l | wc -l # 用来统计当前目录下的文件数
Shell—文件内容操作的更多相关文章
- OC NSFileHandle(文件内容操作)
OC NSFileHandle(文件内容操作) 初始化 [NSFileHandle fileHandleForUpdatingAtPath:@"data.txt"]; //file ...
- grep sed awk 3个Linux中对文件内容操作的命令
在学习Linux命令中,发现3个有关于文件内容操作的命令grep,sed和awk,在这里简单汇总这3个命令主要作用,在实际中找到最合适的情景应用,详细用法可以参考其他文章. 1.grep命令 主要作用 ...
- ansible对文件内容操作
ansible lineinfile 简介 lineinfile该模块是操作文件中的每一行内容,他是按照行为单位的,和下面的replace模块并不冲突. 修改匹配行,如果不存在就会添加 tasks: ...
- 文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets
clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * stream); 函数说明 ...
- asp.net如何删除文件夹及文件内容操作
static void DeleteDirectory(string dir) { && Directory.GetFiles(dir).Length == ) { Directory ...
- shell 文件内容替换 sed用法
sed 's/要被替换的字符串/新的字符串/g' sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest. 如果没有g标记,则只有每行第一个匹配的 ...
- Linux下Shell文件内容替换(sed)(转)
sed -i 's/被替换的内容/要替换成的内容/g' file #-i为直接修改并保存 参考: http://blog.sina.com.cn/s/blog_7211cb9201019hgd.htm ...
- Java文件读写操作指定编码方式防乱码
读文件:BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Re ...
- php最新学习-----文件的操作
一.文件:文件和目录 (1)判断文件的类型用:filetype() filetype("文件路径+文件名") //判断文件的类型 例如:我这里查找的的上一级目录中的json文件,输 ...
随机推荐
- Centos 中使用通过docker 部署.netcore
此前,我一直觉得,目前网络上的各种各样的技术文章.技术文档已经足够多,任何一种技术,都可以或多或少的在网络上找到教程,或者在qq群里找到前辈解答.所以,我觉得自己在博客上写文章的意义甚少.甚至觉得自己 ...
- Fibonacci数Python的四种解法
1: # 计算Fibonacci数: # Naive版本,时间效率O(1.618^n) # 记忆化版本(增加line8.10.13),时间效率O(n) # 注意:当n超过1000,可能超过系统允许的最 ...
- ASP.NET MVC5基础-过滤器(Filters)详解
什么是过滤器? 过滤器的类型与作用 定义过滤器 授权过滤器 动作过滤器 结果过滤器 异常处理过滤器 过滤器的使用方法 总结 什么是过滤器? 通过上一篇关于Controller控制器的文章我们知道,MV ...
- C# -- 模拟扑克牌发牌
C# -- 模拟扑克牌发牌 1. User 类: 玩家 public class User { private List<PaperCard> listCard = new List&l ...
- 使用VeeValidate的data-vv-scope指定验证范围
<div class="login" v-show="activeTab === 1"> <div class="panel-con ...
- layui 滚动加载
直接上核心代码,其实官网介绍的很详细: var pageSize = 5;//每次请求新闻的条数 flow.load({ elem: '#newsList' //指定列表容器 ,scrollElem: ...
- Angular中innerHTML标签的样式不起作用详解
1.背景 在最近angular的项目中,需要用到[innerHTML]标签来指定一个div的样式: //HTML部分 <div class="contents" [inner ...
- GBT32960-2016电动汽车远程服务与管理系统技术规范 第3部分:通信协议及数据格式
电动汽车远程服务与管理系统技术规范 PDF下载地址:https://files.cnblogs.com/files/88223100/GTB32960.zip
- RMAN RECOVER TABLE 功能是 Oracle Database 12c 的新增功能 (Doc ID 1521524.1)
RMAN RECOVER TABLE Feature New to Oracle Database 12c (Doc ID 1521524.1) APPLIES TO: Oracle Database ...
- java之数据结构
数据结构有什么用? 现实世界的存储,我们使用的工具和建模.每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做 ...