我的 txt 文件中有以下模式:
./folder1/folder2/myfile.java
//java source line1
//java source line2
./folder1/folder3/myfile1.java
//java source line1
//java source line2
//java source line3
我想将这个文件拆分成类似的(如果我发出 cat 命令,它应该有上面一个文件中的源代码):
cat ./folder1/folder2/myfile.java
//java source line1
//java source line2
cat ./folder1/folder3/myfile1.java
//java source line1
//java source line2
//java source line3
我可以使用以下方法提取内容和文件名:
awk '/java/{flag=1;fileName=$0;next}/java$/{flag=0}flag' source.txt
但无法将代码重定向到具有不同的非现有文件夹的文件。
最佳答案
您所需要的只是类似的东西(未经测试,但如果不能完全正常工作,将非常接近):
awk '
/^\/\// { print > file; next }
{ close(file); dir=file=$0; sub(/\/[^\/]+$/,"",dir); system("mkdir -p \"" dir "\"") }
' source.txt
关于linux - 为模式之间的文本创建新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781770/