我需要帮助重新编号元素。我有一个类似下面的小示例的输入文件(节点和元素可能在1000中)。我需要一个代码,它跳过所有节点,从第一个元素开始,然后我需要向所有元素添加一个整数。即:元素658=1658、659=1659等。。。。 所有内容都需要输出到一个新文件中,唯一的区别是元素的重新编号。 我试着用awk命令来做这件事,代码如下,不太明白。有人能帮忙吗?python还是sed更好?谢谢
*NODE, NSET=Nvolc
1,6.106226635438e-16,0.000000000000e+00,1.000000000000e+01
2,6.106226635438e-16,0.000000000000e+00,-1.000000000000e+01
3,5.481726184087e-16,0.000000000000e+00,9.000000000000e+00
*ELEMENT, TYPE=C3D4, ELSET=Evolc
658, 58, 193, 148, 113
659, 154, 81, 215, 119
660, 228, 58, 148, 36
661, 7, 131, 146, 302
代码:
awk 'NR==1{print}' test.msh > test2.msh | nawk -v number=500 'NR <= 2 { next } BEGIN{FS=OFS=","} {$1=number;print;number++;print}' test.msh > test2.msh
您可以使用
sed
中的address range来执行此操作:范围
/ELEMENT/,$
意味着从“ELEMENT”的第一次出现到文件的结尾进行搜索。剩下的只是一个简单的substitution和back reference,假设您的空格是一致的。你知道吗重读你的问题,你不清楚你是想改变所有的数字,还是只改变每行的第一个。如果要全部替换,则应该这样做:
如果正在调整,则将
digit
连接到第一个元素。当ELEMENT
出现在行上时启用调整。打印所有内容。你知道吗相关问题 更多 >
编程相关推荐