我有一个包含以下等式的大型文本文件code.txt
oReservist.Role = Sheets("RECAP").Cells(ligne, 2)
oReservist.Surname = Sheets("RECAP").Cells(ligne, 3)
oReservist.Name = Sheets("RECAP").Cells(ligne, 4)
...我想把平等的第一部分改为第二部分,第二部分是第一部分。这就是说:
Sheets("RECAP").Cells(ligne, 2) = oReservist.Role
Sheets("RECAP").Cells(ligne, 3) = oReservist.Surname
Sheets("RECAP").Cells(ligne, 4) = oReservist.Name
...我该怎么处理呢?到目前为止,我只能删除之前和之后的部分:
sed 's/.*=.*//' file发布于 2019-06-24 12:58:08
使用awk和" = "作为字段分隔符,然后简单地旋转字段。
awk -F " = " '{OFS=FS;print $2,$1}' file或者使用sed:
sed 's/\(.*\) = \(.*\)/\2 = \1/' file(使用捕获组\(...\)并以\1和\2替换字符串调用它们)
这两种方法都不会消除行首的制表符或空白。
输出:
Sheets("RECAP").Cells(ligne, 2) = oReservist.Role
Sheets("RECAP").Cells(ligne, 3) = oReservist.Surname
Sheets("RECAP").Cells(ligne, 4) = oReservist.Name为了留住它们,你可以以某种方式捕捉它们,例如:
sed 's/\([[:blank:]]*\)\(.*\) = \(.*\)/\1\3 = \2/' file或者省略第一次捕获中的空白:
sed 's/\([^[:blank:]]*\) = \(.*\)/\2 = \1/' file输出:
Sheets("RECAP").Cells(ligne, 2) = oReservist.Role
Sheets("RECAP").Cells(ligne, 3) = oReservist.Surname
Sheets("RECAP").Cells(ligne, 4) = oReservist.Name发布于 2019-06-24 18:15:00
尝试使用以下2种方法
python
#!/usr/bin/python
m=open('filename','r')
for i in m:
k=i.strip().split('=')
fi=k[1]
la=k[0]
print "{0}={1}".format(fi,la)输出
Sheets("RECAP").Cells(ligne, 2)=oReservist.Role
Sheets("RECAP").Cells(ligne, 3)=oReservist.Surname
Sheets("RECAP").Cells(ligne, 4)=oReservist.Name Method2
awk -F "=" '{print $2"="$1}' y.txt|sed -r "s/\s+//g"
Sheets("RECAP").Cells(ligne,2)=oReservist.Role
Sheets("RECAP").Cells(ligne,3)=oReservist.Surname
Sheets("RECAP").Cells(ligne,4)=oReservist.Namepraveen@praveen:~$
https://unix.stackexchange.com/questions/526606
复制相似问题