Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 按字符串将行拆分为几行\";并在每行的开头追加行号_Shell_Unix_Sh_Awk - Fatal编程技术网

Shell 按字符串将行拆分为几行\";并在每行的开头追加行号

Shell 按字符串将行拆分为几行\";并在每行的开头追加行号,shell,unix,sh,awk,Shell,Unix,Sh,Awk,我试图通过字符串“\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/

我试图通过字符串“\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
a=1
读行时
做
sed的/^/tty/“$line\n”>>file.csv
tr-s'\n'>>out.csv
a=`expr$a+1`
完成
带有


使用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
a=1
读行时;做
sed-r“s/([0-9]+,)+[0-9]+)[^0-9]*/$a\1\n/g“
a=1
读行时
做
echo$line | sed's/\\n/\
“$a””/g'>>output.csv
a=`expr$a+1`
完成
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
a=1
while read line
do
echo $line|sed 's/\\n/\
'"$a"'/g'>>output.csv
a=`expr $a + 1`
done<filename