shell脚本读取文件内容的操作

一、按行读取文件

方法一:while循环中执行效率最高,最常用的方法。

#!/bin/bash
while read line
do
echo $line
done < filename(待读取的文件)

方法2 : 重定向法;管道法: cat $FILENAME | while read LINE 

#!/bin/bash
cat filename(待读取的文件) | while read line
do
echo $line
done

方法3; for 循环

#!/bin/bash
for line in `cat filename(待读取的文件)`
do
echo $line
done

二、 读取特定行的内容

1. sed用法,读取某一行内容

#!/bin/bash

#sed用法 sed -n 'xp' data.txt
#读取第一行数据

sed -n '1p' data.txt

2. sed用法,读取文件X行到Y行的内容

#!/bin/bash

# 获取data.txt 第10-18行内容
sed -n '10,18p' data.txt

3. tail用法,读取文件末尾的数据。

#!/bin/bash

# 获取文件最后3行数据
tail -n -3 data.txt

# 获取文件第3行到最后一行数据
tail -n +3 data.txt

4. head用法,读取文本的前n行数据

#!/bin/bash

# 获取文本前10行数据
head -n 10 data.txt

5. tail和head的结合使用

#!/bin/bash

# 获取文本倒数第二行数据,结果如图所示
tail -n 2 data.txt | head -n 1

6. awk用法,awk在文本处理方面有着强大的功能,配合脚本使用,可以打印指定行和列。

#!/bin/bash

# NR指定行号
awk 'NR==18{print}' data.txt

 

你可能感兴趣的:(Liunx)