我有以下的測試文件:將一個文件分成單獨的基於行號
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
我想它在每個文件都包含以前的文件的第一行的最後一行的方式分開。例如:
file 1:
1
2
3
4
5
file2:
5
6
7
8
9
file3:
9
10
11
12
13
file4:
13
14
15
16
17
file5:
17
18
19
20
這將使4個文件包含5行和1個文件與4行。
作爲第一步,我試着測試下面的命令,我只寫了第一個包含前5行的文件。我不明白爲什麼在if
聲明中的awk
命令,而不是打印第5行,它打印整個20?
d=$(wc test)
a=$(echo $d | cut -f1 -d " ")
lines=$(echo $a/5 | bc -l)
integer=$(echo $lines | cut -f1 -d ".")
for i in $(seq 1 $integer); do
start=$(echo $i*5 | bc -l)
var=$((var+=1))
echo start $start
echo $var
if [[ $var = 1 ]]; then
awk 'NR<=$start' test
fi
done
謝謝!
你試過'split'? – 123
@ 123我添加了一個解釋這個的編輯。 – Homap
@Ed Morton對不起,感到困惑。我最初的目標是sthg else(現在在編輯版本中解釋過),但我只想詢問我的代碼中的錯誤,所以我寫了不同的問題。現在,我希望它更清楚。 – Homap