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文件,输 ...
随机推荐
- IT兄弟连 HTML5教程 和页面布局有关的CSS属性
使用DIV+CSS对网页进行标准化布局前,除了要掌握盒子模型,还要掌握定位和浮动两个比较重要的概念,它们可以控制在页面上排列和显示元素的方式.一个盒子是装内容的区块,如果多个盒子组合在一起使用,再通过 ...
- C#封装继承
面向对象开发有三大特性(特点 / 特征) : 封装, 继承, 多态.我们今天主要讨论封装和继承,多态会在下篇中讨论. 一.封装: 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法 ...
- WPF 3D Cube及点击交互
在WPF中构建一个简单的立方体比较容易实现,可参考资料也比较众多.比较麻烦的是处理点击交互. 我在WPF中用两种方式实现了3DCube,效果图如下: 方式一: 最常见的3D内容构建模式,结构如下图. ...
- 对java异常的总结及java项目中的常用的异常处理情况
文章涉及内容来源:黑马程序员自学整理的笔记,网上查阅资料,以及转载名为墨钺的博客大佬,附上博客转载地址:https://www.cnblogs.com/gothic-death/p/9946415.h ...
- 为Dynamics 365 USD设置打开调试面板的自定义快捷键
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- HIFIMAN TWS600A听感小记——测评出街Man
HIFIMAN TWS600A听感小记——测评出街Man 几年前蓝牙耳塞在大哥苹果的带领下有着掀翻小池塘的气势.蓝牙耳塞完全替代了我在通勤路上用的有线塞子,当时随便买了一副两百多元的塞子,低音轰头就算 ...
- 3、netty第二个例子,使用netty建立客户端,与服务端通讯
第一个例子中,建立了http的服务器端,可以直接使用curl命令,或者浏览器直接访问. 在第二个例子中,建立一个netty的客户端来主动发送请求,模拟浏览器发送请求. 这里先启动服务端,再启动客户端, ...
- macOS Catalina Kernel panic 因为意外而重新启动
0x00 What's Happend? 我的 MacBook Air 在升级到 Catalina 之后,经常在休眠模式重启,随后在桌面上显示"因为意外而重新启动"的信息,以下是跟 ...
- 如何在idea中加载本地中已有的python
本地上安装好了python, 在IDEA中new Project的时候,new Python,选择SDK选择本地的python(本地的python已经配置好了环境变量才行) 另外,默认是不会导入Pyt ...
- 如何使用python远程操作linux
在云服务测试中,往往需要我们进入云服务内容进行相关内容的测试.这测试可以使用平台自身的noVNC.外部辅助xshell等工具连接到云服务内部进行测试.但是在如此反复的测试操作中,就需要用到自动化测试方 ...