文件结构如下:
folderspkgbuild
folder2spkgbuild
folder3spkgbuild
每个spkgbuild有以下内容:
name=packagename
version=1.0
release=1
# depends : packages
# description : blah blah
build()
{
}
我想把# description移到文件的顶部,# depends在它的下面,像这样:
# description : blah blah
# depends : packages
name=packagename
version=1.0
release=1
build()
{
}
知道怎么做吗?
和一个远非健壮的Linux一行代码:
find -type f -name spkgbuild -printf "%hn" | xargs -L 1 bash -c 'cd $0 ; cat <(grep -xE "^# des.*" spkgbuild) <(grep -xE "^# dep.*" spkgbuild) <(grep -xvE "^# de.*" spkgbuild) > spkgbuild.1;mv spkgbuild.1 spkgbuild'
解释:查找所有名为spkgbuild的文件将每个生命所在的目录分别传递给xargs,cd
分别传递给包含文件的每个目录,使用三个grep
重新排列行,将输出写入临时文件(spkgbuild.1
),mv
完成后将该文件写入spkgbuild
。
就是这样,我觉得a应该为此付出代价
filesToModify = ["add your path here", "and here", "and so on"]
linesToMove = ["# description :", "# depends :"] # you can add more
for fName in filesToModify:
content = ""
with open(fName, "r") as fl:
lines = []
for line in fl:
moved = False
for start in linesToMove:
if line.startswith(start):
lines.insert(0, line + ("n" if not line.endswith("n") else ""))
moved = True
break
if not moved:
lines.append(line)
content = "".join(lines)
with open(fName, "w") as fl:
fl.write(content)
然后像python script.py
一样运行i。