我有一个场景,我想将文本文件的所有输出重定向到excel的单个单元格。
文本文件数据:
"remove dead code"
"keep cassandra and postgres in OR condition"
"InsertFailCDRList"
"to be updated in error handling US, write TODO here in comments"
我想在我的一栏中提供这些数据。 例如。
C1 C2
1 TEXT FILE OUTPUT HERE
2 OTHER TEXT FILE OUTPUT HERE
但问题是文本不是单个单元格,而是传播到多个单元格。
使用命令:
#!/bin/bash -x
output=$(cat commentmessage.txt)
number=1
echo $number,"${output}" > buc_review_comments_data3.csv
输出就像:
C1 C2
1 "remove dead code"
"keep cassandra and postgres in OR coniditon"
"InsterFailCDRList"
我希望所有人都在第1行第2列。我们如何使用bash执行此操作?请帮忙。
期望的输出:
C1 C2
1 "remove dead code"
"keep cassandra and postgres in OR coniditon"
"InsterFailCDRList"
2 "new data here"
"new data"
所以基本上,我有 ID = BUC123
totalcomments = 4
文本文件 - 包含多条评论。
在excel中想要以上格式的这些。
答案 0 :(得分:1)
您可以使用while
循环迭代输入文件的内容,然后在每行前面加上您的号码:
#!/bin/bash
infile=commentmessage.txt
outfile=buc_review_comments_data3.csv
number=1
while read line
do
echo "$number","$line"
done < "$infile" > "$outfile"
让我补充一些提示:
"${myvar}otherstuff"
。但它们也可以增强代码的可读性。在您的示例中,您也可以执行echo "$number,$line"
(因为变量名称中不允许使用,
),但echo "${number},${line}
可以很好地清楚您的变量名称是什么,同时保存单独引用。$number
,但最佳做法是you should always double-quote your variable expansions。<
)而不是cat
,请参阅Useless Use of cat。