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.txt
或 wc -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 - 检查文件是不是有多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章