我有一个文件user_list.txt,它有一个由“,”分隔的4个字段的表。例如,
hi,hello,good morning,bye.
我正在使用以下命令提取第三列字段。
output=$(awk 'BEGIN { FS = "," } ; { print $3 }' user_list.txt)
当我尝试检查输出变量的内容时,
echo ${output[0]} --> good
echo ${output[1]} --> morning
我希望它是一个字符串
echo ${output[0]} --> good morning
,但由于空格是默认分隔符,因此正在拆分字符串。
请帮忙。
答案 0 :(得分:1)
在bash中,读取数组输入的行的命令是mapfile
mapfile -t output < <(awk -F, '{print $3}' user_list.txt)
for element in "${output[@]}" # <= the quotes are crucial here
do
echo "have: $element"
done
如果您的输入文件只是一行,请使用cut
output=$(cut -f, -d3 user_list.txt)
echo "have: $output"
答案 1 :(得分:0)
这可以通过以下命令实现。将my_dict = {k: tuple(v) for k, v in my_dict.items()}
视为输入文件。
user_list.txt
答案 2 :(得分:0)
像往常一样,当你提供一小部分更大的图片时,很难正确回答。看来你想用bash中的第三列中的值做一些事情,所以简单的循环有什么问题:
while IFS=, read -r _ _ item _
do
<do stuff with $item here>
done<user_list.txt
当然我可能错了,因为问题设计得很差,难以提出实际答案