如何获取指定目录下所有文件的'head'?
How do i get the 'head' of all files in a specified directory?
我是 UNIX 的初学者。我试图创建一个 bash 脚本,列出指定目录中每个文件的 'head',但我尝试了所有方法,但它似乎不起作用。我该怎么做。下面是我目前在我的脚本中的代码。我打算稍后向脚本中添加更多内容,但首先需要它才能工作。
numberOfLines=
directoryName=
head $numberOfLines $directoryName
试试这个:
head $directoryName/* -n $numberOfLines
您以错误的方式调用了 head 命令。
将您的代码与 manual page.
进行比较
我会使用 find
命令:
find "$directory" -maxdepth 1 -type f -exec head -n "$numberOfLines" {} \;
这确保 head
将只在文件而不是目录上执行。
Head 在一个文件(或一组文件)上工作,而不是一个目录,所以你需要调整你的 directoryName 变量,这样你就可以告诉 shell 解释器你的意思是 "every file in this directory" 和不是目录。
最简单的方法是将“/*”添加到目录名称,将第三行更改为:
head $numberOfLines ${directoryName}/*
示例:
myshell:tmp gdalton$ ./script.sh -2 hello
==> hello/file1 <==
file 1
==> hello/file2 <==
file 2
file 2
请注意,由于 head 命令的语法,您需要像我在示例中所做的那样使用破折号调用第一个参数。您可以使用我为修复您的代码所做的更改作为一个跳跃点,轻松地在您的代码中修复此问题...我强烈建议您查看 head 的手册页,这样您就可以弄清楚如何构建您的 shell命令;它们通常包含这些命令的大量选项。
man head
祝你好运。
我是 UNIX 的初学者。我试图创建一个 bash 脚本,列出指定目录中每个文件的 'head',但我尝试了所有方法,但它似乎不起作用。我该怎么做。下面是我目前在我的脚本中的代码。我打算稍后向脚本中添加更多内容,但首先需要它才能工作。
numberOfLines=
directoryName=
head $numberOfLines $directoryName
试试这个:
head $directoryName/* -n $numberOfLines
您以错误的方式调用了 head 命令。 将您的代码与 manual page.
进行比较我会使用 find
命令:
find "$directory" -maxdepth 1 -type f -exec head -n "$numberOfLines" {} \;
这确保 head
将只在文件而不是目录上执行。
Head 在一个文件(或一组文件)上工作,而不是一个目录,所以你需要调整你的 directoryName 变量,这样你就可以告诉 shell 解释器你的意思是 "every file in this directory" 和不是目录。
最简单的方法是将“/*”添加到目录名称,将第三行更改为:
head $numberOfLines ${directoryName}/*
示例:
myshell:tmp gdalton$ ./script.sh -2 hello
==> hello/file1 <==
file 1
==> hello/file2 <==
file 2
file 2
请注意,由于 head 命令的语法,您需要像我在示例中所做的那样使用破折号调用第一个参数。您可以使用我为修复您的代码所做的更改作为一个跳跃点,轻松地在您的代码中修复此问题...我强烈建议您查看 head 的手册页,这样您就可以弄清楚如何构建您的 shell命令;它们通常包含这些命令的大量选项。
man head
祝你好运。