如何打印随机行的列

我正在做作业,并且需要有关Shell脚本或nano编辑器的帮助。 输出应为:

[NAME],[YEAR] 
[RATING] 
[DESCRIPTION]

方括号中标记的字段对应于从 file.csv 文件中可用的电影中随机选择的电影的字段的值。

问题是我不能单独打印它们,只能打印随机行。

我尝试使用命令cut -d " " -f1将它们分开,但是没有用。

cat file.csv | wc -l
LInes=$(cat file.csv | wc-l)
R_LINE=$(($RANDOM % LInes))
sed -n "${R_LINE}p" file.csv
echo "NAME: ".....,"YEAR:..... "
echo "RATING:..... "
echo "DESCRIPTION:......"
zgfjwzwxb 回答:如何打印随机行的列

这可以使用awk完成:

LINES=$(cat file.csv | wc-l)
R_LINE=$(($RANDOM % LINES))
awk -FS="," 'NR=='$R_LINE'{printf("NAME: %s,YEAR: %d\n\nRATING:%s\n\nDESCRIPTION:%s\n",$1,$2,$3,$4);exit}' file.csv

此代码假定file.csv中的属性以name,year,rating,description的顺序列出。如果顺序不同,请相应地更改printf语句中的列号。

本文链接:https://www.f2er.com/3132498.html

大家都在问