如何在数字序列前创建'\'?

how to create '\' before a sequence of numbers?

我的文件夹中有大量文本文件。每个文件包含一个数字序列:

  1
  1
  2 
  3 
  4 
  5

第一个文件,

  1
  7
  7 
  4 
  6 
  1

第二个文件,以此类推。 现在我想将所有这些文本文件复制到一个新的主文件中,每个文件名都在每个部分的开头,一个“。”在每个文件的末尾,每个 number.I 之前的一个 '\' 表示我希望结果是这样的:

#!MLF!#
*/faem0_si762.txt


 
 
 

 .
*/fajw0_sx3.txt


 
 
 

.
*/faem0_si1392.txt
.
.
.

我已经写了一段 shell 脚本来完成它,但我坚持在数字前加上 \。这是我的代码:

 #!/bin/sh

cd clusteredlabels_train
echo  "#!MLF!#";
for i in *;

do
     echo "\"*/$i\"";
     cat "$i";
     echo ".";
done 

有人知道我应该更改哪一部分吗?非常感谢!

替换脚本中的这一行

cat "$i";

sed -r 's/^([[:digit:]]+)/\/' "$i"

描述

s/^([[:digit:]]+)/\/

我们要求 sed 在一行的开头 (^) 找到一个或多个数字 ([[:digit:]]+)。然后我们要求它通过在它们前面加上反斜杠 (\).

来重写这些数字 ([=16=])

测试 Windows 7 - cygwin 2.852(64 位)- sed (GNU sed) 4.2.2

例如使用 sed 在任何行前插入一个 \:

 #!/bin/sh

cd clusteredlabels_train
echo  "#!MLF!#";
for i in *;

do
     echo "\"*/$i\"";
     sed -r 's/^/\/' "$i";
     echo ".";
done