shell中一行一行读取文件中的内容

shell中awk可以处理文本文件,sed也可以处理文本文件,sed在我之前的文章中有写过,它是一行一行的去读,然后对读取的内容可以进行操作。awk也是一行一行的处理,只是进行抽取,而不进行修改。

还有一种方法是通过while语句+read进行一行一行的读取数据:
read用法:
第一种,从命令行中读:

[root@uc201 ~]# read line
aaabbb
[root@uc201 ~]# echo $line
aaabbb

可以看到read是从标准输入中读取数据遇到回车就终止读取,并赋值给line;

第二种:从文件中一行一行的读:

#!/bin/bash
while read line;do
        echo $line
done < test.txt

文件test.txt文件中的内容如下:

[root@uc201 ~]# cat test.txt
aaa
bbbaaa
bbb
ccc

执行结果;

[root@uc201 ~]# sh 1.sh
aaa
bbbaaa
bbb
ccc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shell编程,可以使用循环结构和各种文本处理命令来实现读取文件的每一行并根据空格分割的功能。 首先,通过使用`while`循环结构,从文件逐行读取内容。可以使用`read`命令实现读取操作,将每一行内容存储在一个变量。 然后,使用`cut`命令按照空格进行分割。`cut`命令可以根据指定的分隔符将文本进行切割,而空格是默认的分隔符。 最后,可以将分割后的结果进行进一步的处理或输出。例如,可以将分割后的结果存储在一个数组,或者直接输出到终端或其他文件。 下面是一个示例代码,演示了如何实现这个功能: ``` #!/bin/bash filename="input.txt" # 文件名 while IFS= read -r line; do # 逐行读取文件内容 words=($line) # 将每一行按空格分割为数组 for word in "${words[@]}"; do echo "$word" # 输出每个分割后的单词 done done < "$filename" ``` 在这个示例,假设要读取的文件名为`input.txt`。首先,使用`while`循环结构从文件逐行读取内容,并将每一行存储在`line`变量。接下来,使用`words=($line)`将`line`按空格分割为一个数组`words`。然后,使用`for`循环遍历数组的每个元素`word`,并将其输出到终端。 以上就是使用Shell编程实现读取文件的每一行并根据空格分割的解答。注意,这只是一个简单的示例,实际应用可能需要根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如梦@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值