我想使用unix命令将txt
文件中的一列数据转换为csv
文件的一行。
示例:
ApplChk1,
ApplChk2,
v_baseLoanAmountTI,
v_plannedClosingDateField,
downPaymentTI,
这是一个存在于txt文件中的列
我希望在csv文件中输出如下
ApplChk1,ApplChk2,v_baseLoanAmountTI,v_plannedClosingDateField,downPaymentTI,
请让我知道怎么做。
提前致谢
答案 0 :(得分:3)
如果这是您想要转换为行的单个列,那么有很多可能性:
tr -d '\n' < filename ; echo # option 1 OR
xargs echo -n < filename ; echo # option 2 (This option however, will shrink spaces & eat quotes) OR
while read x; do echo -n "$x" ; done < filename; echo # option 3
请告知我们,对于多行情况,输入的外观如何。
答案 1 :(得分:2)
一个有趣的纯 bash解决方案(bash≥4.1):
mapfile -t < file.txt; printf '%s' "${MAPFILE[@]}" $'\n'
完成!
答案 2 :(得分:1)
for i in `< file.txt` ; do echo -n $i; done; echo ""
给出输出
ApplChk1,ApplChk2,v_baseLoanAmountTI,v_plannedClosingDateField,downPaymentTI,
将输出发送到文件:
{ for i in `< file.txt` ; do echo -n $i ; done; echo; } > out.csv
当我运行它时,会发生这种情况:
[jenny@jennys:tmp]$ more file.txt
ApplChk1,
ApplChk2,
v_baseLoanAmountTI,
v_plannedClosingDateField,
downPaymentTI,
[jenny@jenny:tmp]$ { for i in `< file.txt` ; do echo -n $i ; done; echo; } > out.csv
[jenny@jenny:tmp]$ more out.csv
ApplChk1,ApplChk2,v_baseLoanAmountTI,v_plannedClosingDateField,downPaymentTI,
答案 3 :(得分:0)
perl -pe 's/\n//g' your_file
以上将输出到stdout。 如果你想这样做:
perl -pi -e 's/\n//g' your_file