Linux - 检查文件是不是有多行[重复]

Posted

技术标签:

【中文标题】Linux - 检查文件是不是有多行[重复]【英文标题】:Linux - Check if a file has multiple lines [duplicate]Linux - 检查文件是否有多行[重复] 【发布时间】:2016-05-01 12:00:39 【问题描述】:

是否有命令或 bash 函数来检查文件是否有多行? 假设我有这两个文件:

foo.txt

Hello World

bar.txt

Hello
World

【问题讨论】:

试试wc -l 命令。 你可以使用wc -l来统计一个文件的行数。 【参考方案1】:

我用这个命令解决了:

wc -l foo.txt | awk ' print $1 '

输出:1

wc -l bar.txt | awk ' print $1 '

输出:2

这显示了行数,在脚本中我可以检查这个数字是否大于 1,我的问题就解决了。

【讨论】:

使用wc -l < bar.txt - 这里根本不需要awk。 坏了。计算换行符而不是行数。 echo -n -e 'ab\ncd' | wc -l 只报告 1,尽管有两行。【参考方案2】:

你可以这样做:

cat foo.txt | wc -l

这将读取文件并返回文件中的行数。

cat - 读取文件 输入wc(字数)-l(行数)

【讨论】:

这是useless use of cat 为什么不只是 wc -l foo.txtwc -l < foo.txt【参考方案3】:

你可以使用这个脚本:

名称:test.sh

#!/bin/bash

back=`wc -l $1`
nl=$back:0:1

if [ $nl = "1" ];then
    echo "single line"
else
    echo "multi lines"
fi

使用此命令更改文件 mod:

chmod a+x test.sh

然后执行脚本,参数就是你要测试的文件:

./test.sh hello

【讨论】:

如果文件名中包含空格或*等字符会怎样?如果文件有 10-19 行或 100-199 行会怎样? 这需要你在 bash shell 中添加正则表达式。

以上是关于Linux - 检查文件是不是有多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查linux脚本中是不是存在文件[重复]

检查文件是不是存在Linux bash [重复]

检查文件是不是被使用[重复]

如何检查文件是不是被git忽略[重复]

PHP检查文件是不是是图像[重复]

在启动时检查文件是不是存在的有效方法[重复]