我试图通过字符串“\ n”将多行中文件的每一行拆分,在新文件的每一行的开头添加原始文件的编号。我在一个例子中解释它:
原始文件:
2,5,6,\n6,3,4\n7,8,3
23,4,1,\n5,5,6,\n2,3,8
我想要的文件
1,2,5,6
1,6,3,4
1,7,8,3
2,23,4,1
2,5,5,6
2,2,3,8
我尝试使用以下代码,但根本不起作用:
a=1
while read line
do
sed 's/^/tty/' "$line\n" >>file.csv
tr -s '\n' >> out.csv
a=`expr $a + 1`
done < file.csv
答案 0 :(得分:1)
awk '{split($0, a, /\\n/)};
{for (i in a) {sub(/,$/, "", a[i]); print NR","a[i]}}' file.txt
答案 1 :(得分:0)
使用sed和while循环:
a=1
while read line; do
sed -r "s/(([0-9]+,)+[0-9]+)[^0-9]*/$a,\1\n/g" <<< "$line"
((a++))
done < file.csv
1,2,5,6
1,6,3,4
1,7,8,3
2,23,4,1
2,5,5,6
2,2,3,8
答案 2 :(得分:0)
a=1
while read line
do
echo $line|sed 's/\\n/\
'"$a"'/g'>>output.csv
a=`expr $a + 1`
done<filename
在sed的/ \\ n / \
之后手动按回车键