如何在现有CSV文件的单个单元格中追加静态内容
解决CSV首单元格添加带换行文本的问题
需求
- 将一段带换行的文本完整放入现有CSV文件的第一个单元格,原CSV内容紧随其后
- 确保带换行的文本被CSV解析工具识别为单个单元格,而非被拆分成多行
原CSV文件内容(Customer_File)
ID,Customer_Name,Cust_ADD 1,A,CBE 2,B,POL 3,C,POL
需要添加的内容
This is Loganayaki ,she is trying to append the csv file But she is not able to, she is facing difficulty using shell script she is seeking help to fix this issue, so that she cab complete her task. she tried few things which is not helping her
尝试的脚本
#!/bin/bash # File paths csv_file="data.csv" # New content to prepend new_content="This is Loganayaki ,she is trying to append the csv file But she is not able to, she is facing difficulty using shell script she is seeking help to fix this issue, so that she cab complete her task. she tried few things which is not helping her" # Read existing content of the CSV file (excluding the first line) existing_content=$(tail -n +2 "$csv_file") # Combine new content with existing content combined_content="$new_content"$'\n'"$existing_content" # Write the combined content back to the CSV file echo "$combined_content" > "$csv_file"
现有问题
脚本直接写入带换行的内容,导致CSV被拆分成多行,换行符被解析为CSV的行分隔符,无法被识别为单个单元格的内容。
解决脚本
根据CSV规范,包含换行、逗号或双引号的单元格必须用双引号包裹。修改后的脚本如下:
#!/bin/bash csv_file="data.csv" # 要添加的内容,保留原始换行 new_content="This is Loganayaki ,she is trying to append the csv file But she is not able to, she is facing difficulty using shell script she is seeking help to fix this issue, so that she cab complete her task. she tried few things which is not helping her" # 用双引号包裹内容,确保CSV解析时识别为单个单元格 quoted_content="\"$new_content\"" # 读取原文件的所有内容(包含表头) existing_content=$(cat "$csv_file") # 组合内容:带引号的新内容 + 换行 + 原文件内容 combined_content="$quoted_content"$'\n'"$existing_content" # 写入文件 echo "$combined_content" > "$csv_file"
验证结果
修改后的CSV内容如下,带换行的文本会被CSV工具正确识别为第一个单元格的内容:
"This is Loganayaki ,she is trying to append the csv file But she is not able to, she is facing difficulty using shell script she is seeking help to fix this issue, so that she cab complete her task. she tried few things which is not helping her" ID,Customer_Name,Cust_ADD 1,A,CBE 2,B,POL 3,C,POL
注意:如果新内容中包含双引号,需要将每个双引号转义为两个双引号(CSV规范要求),例如将"test"改为""test""。
内容的提问来源于stack exchange,提问作者Loganayaki mahalingam
相关产品推荐
相关产品推荐

