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
Unix 将每个文件内容复制到新文件名中(如果需要,使用grep/sed/awk)_Unix_Awk_Grep - Fatal编程技术网

Unix 将每个文件内容复制到新文件名中(如果需要,使用grep/sed/awk)

Unix 将每个文件内容复制到新文件名中(如果需要,使用grep/sed/awk),unix,awk,grep,Unix,Awk,Grep,如何使用grep、sed、cat或awk而不是xmlstarlet复制每个文件的内容并将其复制到新的文件名中 必须考虑的是,仅需考虑的文件将以以下方式命名: Toto.O.1.applist.xml Toto.O.2.applist.xml Toto.O.3.applist.xml Toto.O.4.applist.xml 我知道要考虑所有这些文件,我必须使用以下语法: Toto.O.*.applist.xml 还要考虑到,任何用户都可以按照上述命名创建文件,他们可以创建任意数量的文件,并且

如何使用grep、sed、cat或awk而不是xmlstarlet复制每个文件的内容并将其复制到新的文件名中

必须考虑的是,仅需考虑的文件将以以下方式命名:

Toto.O.1.applist.xml

Toto.O.2.applist.xml

Toto.O.3.applist.xml

Toto.O.4.applist.xml

我知道要考虑所有这些文件,我必须使用以下语法:

Toto.O.*.applist.xml
还要考虑到,任何用户都可以按照上述命名创建文件,他们可以创建任意数量的文件,并且这些文件的内容可以包含字母、数字、数字、空格以及点

让我们举一个可以创建的示例:

Toto.O.1.applist.xml 内容:abc.def3.g H2k

Toto.O.2.applist.xml 内容:Rara df.epc.siunX.zefin

Toto.O.3.applist.xml 内容:露露g32.zfreuf.CdtTGCTG

Toto.O.4.applist.xml 内容:61FGRf XC.efde.444

等等

预期结果:

/目录_OF_RESULT/blabla.abc.def3.g H2k.xml

/目录\u OF_RESULT/Rara df.epc.siunX.zefin.xml

/目录\u OF_RESULT/LULU g32.zfreuf.CdtTGCTG.xml

/目录\u OF_RESULT/61FGRf XC.efde.444.xml


提前感谢您的帮助。

我不完全理解您要做什么,以及为什么会有这么多不必要的复杂性,但这里有一些东西可能会让问题更具体

从具有特定文件名模式的文件中读取行,并使用这些行中的名称创建文件

例如: 模板文件名列表

$ head path3/list?
==> path3/list1 <==
1
2
3

==> path3/list2 <==
10
11
12


$ cat path3/list? | while read -r f; do touch path3/"$f".xml; done

$ ls path3
1.xml  10.xml  11.xml  12.xml  2.xml  3.xml  list1  list2

问题是:这些文件的内容是什么?为什么初始模板文件具有xml扩展名,即使内容被假定为文件名?

只是为了回答我的主要问题,我使用wich命令发现我已经做到了:

VARNAMES=$(awk '{ print }' TXT_FILES_*_.txt)
    cd 
        printf '%s\n' "$NAMES" | while IFS= read -r line
        do
        sed "s/com.package.name/$line/" < FOLDER/TEXTFILEEXEMPLE.xml >  FOLDER/FINAL_FILE-$line.xml

感谢@karakfa和其他人尝试帮助我。

详细解释您的预期结果请使用示例代码标记并解释这三件事。1-您对代码标记中的示例输入有什么疑问。2-代码标记中的示例的预期结果是什么。3-到目前为止您尝试了什么?@RomanPerekhrest,正如我所写的:我想知道如何复制文件名ExSDCard.O.*.applist.xml的每个内容,其中*可能是1,2,3,4,5,6,等等。。。并以新的文件名通过它们。当然,我也尝试过几种方法,从同一个论坛上获取答案,还有其他类似的话题,比如sed、cat、grep和awk,但我并不是每天都使用这些工具,我会说,有些用途已经足够特殊了。每次,无论什么工具,如果我能说的话,我都找不到合适的组合。这就是我来问你答案的原因。_RESULT/blablabla.abc.def3.g H2k.xml文件/目录的内容是什么?我们只知道文件名是作为一行从一个源文件派生的。还有,为什么扩展名是xml而看起来不像xml文件?@karakfa关于将要创建的新xml文件的内容,我已经使用shell script:sed命令从模板文件复制内容,每次在当前步骤中创建的每个新创建文件中的分隔符之间替换内容。另外,为什么扩展名是xml而看起来不像xml文件?也就是说?