从文件中获取一行并将其附加到另一个文件

时间:2016-06-13 17:13:10

标签: linux bash

我需要从文件中提取某个行号,然后将其附加到另一个文件中。新的bash,请帮助!

2 个答案:

答案 0 :(得分:2)

head -n<SkipLines> <filename> | tail -n<TakeLines>

所以,如果您想从文件的第10行中获取2行 pippo.txt

head -n10 pippo.txt | tail -n2

编辑:

要将其附加到另一个文件,请执行以下操作:

head -n<SkipLines> <filename> | tail -n<TakeLines> >> <OtherFile>

head -n10 pippo.txt | tail -n2 >> pippo2.txt

答案 1 :(得分:1)

假设Bash≥4。

要从文件inputfile中提取第42行并将其附加到文件outputfile,就像这样简单:

# data

input=inputfile
output=outputfile
linenb=42

# get line number
mapfile -t -s $((linenb-1)) -n 1 line < "$input" || exit 1

# check that we got a line
if ((${#line[@]}==0)); then
    printf >&2 'Line %d not found in file %s\n' "$linenb" "$input"
    exit 1
fi

# append it to output file
printf '%s\n' "$line" >> "$output"

Pure Bash!