我试图限制在line读取行循环中找到的行数。例如:
文件: order.csv
123456,ORDER1,NEW
123456,ORDER-2,NEW
123456,ORDER-3,SHIPPED我正在做以下几件事。
cat order.csv | while read line;
do
order=$(echo $line | cut -d "," -f 1)
status=$(echo $line | cut -d "," -f 3)
echo "$order:$status"
done其中产出:
123456:NEW
123456:NEW
123456:SHIPPED我怎么才能限制行数。在这种情况下,有三个。如何将它们限制为2,以便只显示前两个?
期望产出:
123456:NEW
123456:NEW发布于 2018-09-06 13:44:17
有一些方法可以满足您的要求:
方法1
使用head显示文件的前几行。
head -n 2 order.csv | while read line;
do
order=$(echo $line | cut -d "," -f 1)
status=$(echo $line | cut -d "," -f 3)
echo "$order:$status"
done方法2
使用for循环。
for i in {1..2}
do
read line
order=$(echo $line | cut -d "," -f 1)
status=$(echo $line | cut -d "," -f 3)
echo "$order:$status"
done < order.csv方法3
使用awk。
awk -F, 'NR <= 2 { print $1":"$3 }' order.csvhttps://stackoverflow.com/questions/52205383
复制相似问题