gpt4 book ai didi

linux - 在 Linux 的目录中显示几行文件*

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:26:02 24 4
gpt4 key购买 nike

我试图列出目录中所有文件的前 5 行(在 Unix 中创建命令)。我试图通过使用 head 命令来解决这个问题,看起来像这样:

head -n 5 directory/*

这对文件有效,但对目录给出错误(很明显)。

所以,我的问题是如何才能只对文件应用 head 命令?

我的 bash 脚本看起来像这样:

#!/bin/bash
# description: show first/last lines of all the files in a provided directory

if [ $# -ne 3 ]
then
echo "Error: Please provide 3 parameters."
echo "Usage Example: lshead -head 5 [DIR]"
exit
else
operation=$1
lines=$2
directory=$3

if [ "$operation" == "-head" ]
then
head -n $lines $directory/*
elif [ "$operation" == "-tail" ]
then
tail -n $lines $directory/*
fi
fi

非常感谢任何建议,非常感谢期待。

最佳答案

这应该可行

#!/bin/bash
...
for f in "$directory"/{*,.??*}
do
if [ -f "$f" ]
then
case "$operation" in head|tail)
echo "$directory/$f:"
$operation -n "$lines" "$f"
esac
fi
done

关于linux - 在 Linux 的目录中显示几行文件*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53231995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com