我需要从文件中提取某个行号,然后将其附加到另一个文件中。新的bash,请帮助!
答案 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!