我是 shell 脚本的新手。如何编写一个 shell 脚本,仅显示当前目录中超过 8 行的文件的内容(在 Ubuntu 中)?
我知道我必须使用命令head
并采用for
遍历所有文件的方法,以及每当文件超过 8 行时计数器就会增加的方法,但出了问题。当我执行脚本时,它不会产生它应该产生的输出。
#!/bin/bash
for fis in *
do
cat $fis
head -8 $fis
done
contor=0
while [ contor -le 100 ]
do
echo $contor
contor=`expr $contor + 1`
done
答案1
这是一个非常简单的解决方案:
for f in *
do
if [ $(wc -l "$f" | awk '{print $1}') -gt 8 ]; then
cat "$f" # print the file content
#echo $f # print the filename
fi
done
该命令wc -l $f | awk '{print $1}'
返回文件的行数,并且条件验证它是否大于 8。如果您只是要打印文件的内容,请考虑使用命令“more”而不是 cat。