读取文件的每一行内容并输出

#!/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—文件内容操作的更多相关文章

  1. OC NSFileHandle(文件内容操作)

    OC NSFileHandle(文件内容操作) 初始化 [NSFileHandle fileHandleForUpdatingAtPath:@"data.txt"]; //file ...

  2. grep sed awk 3个Linux中对文件内容操作的命令

    在学习Linux命令中,发现3个有关于文件内容操作的命令grep,sed和awk,在这里简单汇总这3个命令主要作用,在实际中找到最合适的情景应用,详细用法可以参考其他文章. 1.grep命令 主要作用 ...

  3. ansible对文件内容操作

    ansible lineinfile 简介 lineinfile该模块是操作文件中的每一行内容,他是按照行为单位的,和下面的replace模块并不冲突. 修改匹配行,如果不存在就会添加 tasks: ...

  4. 文件内容操作篇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); 函数说明 ...

  5. asp.net如何删除文件夹及文件内容操作

    static void DeleteDirectory(string dir) { && Directory.GetFiles(dir).Length == ) { Directory ...

  6. shell 文件内容替换 sed用法

    sed 's/要被替换的字符串/新的字符串/g' sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest. 如果没有g标记,则只有每行第一个匹配的 ...

  7. Linux下Shell文件内容替换(sed)(转)

    sed -i 's/被替换的内容/要替换成的内容/g' file #-i为直接修改并保存 参考: http://blog.sina.com.cn/s/blog_7211cb9201019hgd.htm ...

  8. Java文件读写操作指定编码方式防乱码

    读文件:BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Re ...

  9. php最新学习-----文件的操作

    一.文件:文件和目录 (1)判断文件的类型用:filetype() filetype("文件路径+文件名") //判断文件的类型 例如:我这里查找的的上一级目录中的json文件,输 ...

随机推荐

  1. utf8和utf8mb4的区别

    一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...

  2. Python 中国象棋源码 V1

    Pygame 做的中国象棋,一直以来喜欢下象棋,写了 python 就拿来做一个试试,水平有限,电脑走法水平低,需要在下次版本中更新电脑走法,希望源码能帮助大家更好的学习 python.总共分为四个文 ...

  3. C语言程序运行时的一些细节

    本章可以看作是 <Unix 环境高级编程>Ch7 的笔记. C 程序运行的开始和结束 一个可以运行的 C 语言总要有一个 main 函数,main 函数现在的完整定义是 int main( ...

  4. Windows Redis 安装(带视频)

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...

  5. Leetcode题解 - 双指针求n数之和

    1. 两数之和 """ 双指针,题目需要返回下标,所以记录一个数字对应的下标 """ class Solution: def twoSum( ...

  6. C# Thread 线程

    Thread  创建和控制线程,设置其优先级并获取其状态 Thread构造函数接收一个无参数或带一个object类型参数的委托 { Console.WriteLine("), DateTim ...

  7. tesseract-OCR + pytesseract安装

    1. tesseract-OCR下载安装 地址:https://digi.bib.uni-mannheim.de/tesseract/ 选择一个版本下载,下载完成点击**.exe进行安装,若无其他需求 ...

  8. 「SAP技术」A项目关联公司间退货STO流程

    [SAP技术]A项目关联公司间退货STO流程 1)创建公司间退货STO单据. 如下图示的公司间退货STO 4500000572, 2),VL10B, 创建交货单. 如下图交货单号:80044918, ...

  9. k8s ingress 转发服务,内容显示不全问题

    0x00 事件 部署了 ingress ,并声明了两个路由 /eureka 和 /tomcat,/eureka 转发到了 eureka server 的服务端口,/tomcat 转发到了 tomcat ...

  10. 小程序模板template使用介绍

    template(模板):是可以在wxml中引用的代码,就是在wxml中引用公用的wxml类型的代码,它的作用类似于组件,因此这里简单的说明下template与Component (组件)的区别. t ...