[英]Linux Bash file Reading Lines and words
如果这是一个小问题,我深表歉意。 我正在学习如何使用linux bash,这个小任务让我头疼...
所以我需要编写一个脚本,我们称它为count.sh。 我想要这样:对于工作目录中的每个文件,向控制台打印文件名,行数和单词数:
test.txt 100 1023
一些其他文件10233
到目前为止,我知道以下内容为我提供了目录中的所有文件名。 感谢所有帮助我的人,我得到了这个工作版本:
for f in *; do
echo -n "$f"
cat "$f" | wc -wl
done
我将衷心感谢您的帮助! 谢谢你!
附言:如果您知道学习脚本的大量资源(教程的链接),并愿意与我分享。 我认为我真的需要了解这些基础知识。 再次感谢!
如果必须将文件名作为输出中的第一个字段,请尝试以下操作:
for f in *; do
if [ -f "$f" ]; then
echo -n "$f"
cat "$f" | wc -wl
fi
done
for f in *; do
if [[ -f $f ]]; then
echo "$f $(wc -wl < "$f")"
fi
done
[[ -f $f ]]
仅处理文件 (不包括子目录),并且还处理目录为空的情况 (在这种情况下, *
(默认情况下)不作扩展,即按原样分配给$f
)。 echo "$f $(wc -wl < "$f")"
使用命令替换 ( $( ... )
)将附带命令的输出直接包含在传递给echo
的输出字符串中。 <
用于通过stdin将文件$f
的内容定向到wc
是,否则wc
会将输入文件的名称附加到其输出(感谢@R Sahu)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.