ls -latr "一些路径"
的输出中省略第一行。因为我需要删除下面输出中的total 136
。
所以我写了ls -latr /home/kjatin1/DT_901_linux//autoInclude/system | tail -q
,它排除了第一行,但当文件夹为空时,它不会省略第一行。请告诉我如何在任何Linux命令输出中省略第一行。
ls -latr "一些路径"
的输出中省略第一行。因为我需要删除下面输出中的total 136
。
所以我写了ls -latr /home/kjatin1/DT_901_linux//autoInclude/system | tail -q
,它排除了第一行,但当文件夹为空时,它不会省略第一行。请告诉我如何在任何Linux命令输出中省略第一行。
tail
命令可以实现这个功能:
ls -lart | tail -n +2
-n +2
的意思是“从输出的第二行开始逐行处理”。
使用管道将其传递给 awk
:
awk '{if(NR>1)print}'
或者 sed
sed -n '1!p'
sed '1d'
。 - JoL ls -lart | tail -n +2 #argument means starting with line 2
这是一种快速而简单的方法:ls -lart | grep -v ^total
。
基本上,删除任何以"total"开头的行,而在ls
输出中,它应该只是第一行。
一个更通用的方法(适用于任何内容):
ls -lart | sed "1 d"
sed "1 d"
意味着只打印除了第一行之外的所有内容。
grep
来进行过滤是很危险的,因为它可能会意外地匹配到其他内容。 - Donal Fellows您可以使用awk
命令:
对于命令输出,请使用管道:| awk 'NR>1'
对于文件输出,请使用:awk 'NR>1' file.csv
tail
实现需要-n
标志,例如tail -n +2
。 - Matfind . -name . -o -ls -prune
,但它会产生略微不同的输出。 - Donal Fellowscoreutils
的 tail 命令,但现在已被弃用并删除。现在你会得到tail: cannot open '+2' for reading: No such file or directory
(coreutils 8.7)。可悲的是其他实现不接受-n
... - Mat