Ubuntu shell脚本将目录的第二个文件保存为变量

时间:2018-04-15 16:31:29

标签: linux shell ubuntu

我的问题是我需要编写一个脚本,它将把目录中的第二个文件作为输入。我不能简单地将第二个文件的名称写入脚本,因为该脚本将用于具有不同文件名的各种目录。因此,我想将目录的第二个文件的名称设置为变量,但无法找到方法。

我非常感谢任何帮助,因为我对shell脚本相当新。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的文件名不包含换行符(通常是这种情况)或类似的陷阱,

f=$(ls | head -n 2| tail -n1)

这将获取前两个文件,然后是最后一个文件。 这是第8个文件,在sed:

的帮助下完成
time f=$(ls | sed -n '8p')

这里有一个断行不可知的解决方案:

n=1; for f in * ; do if (( $n == 11 )); then echo $f; break; fi; ((++n)); done 
line break.bad

f=$(ls | sed -n '11p'); echo $f; 
line

该文件是用

制作的
touch "line
break.bad"