我有一个.csv
包含以下格式的多行文件:
¬Country¬,¬Year¬,¬Singer¬,¬Song Title¬
¬Japan¬,¬1999¬,¬Utada Hikaru¬,¬First Love¬
¬South Korea¬,¬1999¬,¬Lee Jung Hyun¬,¬Wa¬
...
我可以用 打印我想要的信息awk
。例如
awk -F'¬' '{print $2" - "$4}' Model.csv | tail -n +2
这将导致:
Japan - 1999
South Korea - 1999
我希望这基于 Bash 脚本中的用户输入,用户可以选择要打印哪些列以及以哪种“格式”打印。例如,如果我希望输出为
[1999] Utada Hikaru - First Love
[1999] Lee Jung Hyun - Wa
我会用
awk -F'¬' '{print "["$4"]" " "$6" - "$8}' Model.csv | tail -n +2
但是,通过使用"["$4"]" " "$6" - "$8
作为输入,awk 不会将其读取为打印命令的模式
#!/bin/bash
read -p "Which format? " format
#User will type here desired print pattern, for example "["$4"]" " "$6" - "$8
awk -v "var=$format" -F'¬' '{print var}' Model.csv
导致
"["$4"]" " "$6" - "$8
"["$4"]" " "$6" - "$8