保留文件中的前5行

时间:2014-02-18 16:03:47

标签: linux unix output

这是我想要做的......

我有一堆文本文件需要经过并且只保留前5行。如果我top然后输出到那里的文件。我需要文件名与之前相同。

例如:file.name - 前五行(删除第5行下方的所有内容),然后将文件另存为file.name。有许多文件需要批量完成。

2 个答案:

答案 0 :(得分:3)

您可以使用head执行此操作。

head  -n 5  file.name > file.name.tmp && mv file.name.tmp file.name

您可以将其构建为脚本,以便为所有文件执行此操作,并在以后的每次运行中将file.name作为参数传递。

答案 1 :(得分:2)

假设您正在使用名为“file.name”的文件,基本语法非常简单

head -n5 file.name > temp && cat temp > file.name

cat file.name | head -n5 > temp && cat temp > file.name

如果您尝试在路径中的大量文件上执行此操作,则应使用类似

的内容
find ./ -type f -printf "%f\n"

您可以根据所需的文件类型修改参数

find ./ -name "*.js" -type f -printf "%f\n"

然后,您可以遍历该列表,将每一行作为参数传递到上面的代码中

它可能看起来像这样(我没有测试过这个,但它类似于我写的另一个小脚本,所以希望它指向正确的方向)

function cutfile {
    head -n5 "$1" > temp && cat temp > "$1"
}

find ./ -name "*.js" -type f -printf "%f\n" |\
while read line; do cutfile $line; done
编辑:改头......; cat ...代码基于@ fedorqui关于@ mu代码的建议

编辑:固定代码,添加“;完成”,使代码更具可读性