如何由一个文本文件 拷贝到另一个文本文件

sh/bash/dash/ksh/zsh等Shell脚本
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

如何由一个文本文件 拷贝到另一个文本文件

#1

帖子 sharrybaby » 2012-05-30 20:18

文件1格式如下:
GLAT GLON
45 -105
10 90
50 135
文件2中内容如下:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 0.00 : latitude (deg)
GLON = -165.00 : longitude (deg)
将文件2中GLAT=0.00和GLON=-165.00中的两个数字替换为文件1中第二行的两个数(即改为GLAT=45,GLON=-105),并保存文件2,该怎么做啊?求大侠帮忙
上次由 sharrybaby 在 2012-06-01 21:46,总共编辑 2 次。
头像
lxr1234
帖子: 721
注册时间: 2009-04-10 11:15
来自: 三民主义国国民权利省我的选择市中共下台镇

Re: 如何由一个文本文件 拷贝到另一个文本文件

#2

帖子 lxr1234 » 2012-05-30 22:22

不明白所要效果,给出一个修改后的例子,而且数据多给点,不然不好理解意图
强烈反对M$的ARM Secure Boot 锁定要求,大家请签名反对
http://www.fsf.org/campaigns/secure-boo ... cted-boot/
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#3

帖子 sharrybaby » 2012-05-30 23:47

lxr1234 写了:不明白所要效果,给出一个修改后的例子,而且数据多给点,不然不好理解意图
改好了,不知道说明白了没有~~~就是将文件2中GLAT行第三个字段的数字替换为文件1中第一列的数字,GLON行第三个字段的数字替换为文件1中第一列的数字,然后保存文件2
头像
link_01
帖子: 1024
注册时间: 2008-11-05 13:24

Re: 如何由一个文本文件 拷贝到另一个文本文件

#4

帖子 link_01 » 2012-05-31 9:46

打开俩文本编辑器 :em09
笔记
-------------------------------------
http://blog.163.com/wqt_1101
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#5

帖子 sharrybaby » 2012-05-31 10:49

link_01 写了:打开俩文本编辑器 :em09
能不能说的具体一点儿啊
头像
link_01
帖子: 1024
注册时间: 2008-11-05 13:24

Re: 如何由一个文本文件 拷贝到另一个文本文件

#6

帖子 link_01 » 2012-05-31 15:25

哈哈,就是几个文件的话手动修改,很多的话再考虑shell
笔记
-------------------------------------
http://blog.163.com/wqt_1101
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#7

帖子 naturalaw » 2012-06-01 0:31

GLAT GLON
45 -105
10 90
50 135
文件2中内容如下:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 0.00 : latitude (deg)
GLON = -165.00 : longitude (deg)
将文件2中GLAT=0.00和GLON=-165.00中的两个数字替换为文件1中第二行的两个数(即改为GLAT=45,GLON=-105),并保存文件2
变量。awk sed
给多点数据出来。。。。
要不你就对照着文件1修改文件2.
  • The eternal law
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#8

帖子 sharrybaby » 2012-06-01 20:14

naturalaw 写了:
GLAT GLON
45 -105
10 90
50 135
文件2中内容如下:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 0.00 : latitude (deg)
GLON = -165.00 : longitude (deg)
将文件2中GLAT=0.00和GLON=-165.00中的两个数字替换为文件1中第二行的两个数(即改为GLAT=45,GLON=-105),并保存文件2
变量。awk sed
给多点数据出来。。。。
要不你就对照着文件1修改文件2.
由于文件1中数据量很多,手动修改不太可能。想要得到如下效果:
例如,第一次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=45,GLON=-105(文件1中第二行),之后将文件2保存为文件3;
第二次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=10,GLON=90(文件1中第三行),之后将文件2保存为文件4;
第三次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=50,GLON=135(文件1中第四行),之后将文件2保存为文件5;
能不能具体点儿,我也尝试了awk通过字段赋值,但是得不到想要的效果,求大侠帮帮忙啊
头像
lilydjwg
论坛版主
帖子: 4250
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何由一个文本文件 拷贝到另一个文本文件

#9

帖子 lilydjwg » 2012-06-01 21:34

sharrybaby 写了: 由于文件1中数据量很多,手动修改不太可能。想要得到如下效果:
例如,第一次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=45,GLON=-105(文件1中第二行),之后将文件2保存为文件3;
第二次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=10,GLON=90(文件1中第三行),之后将文件2保存为文件4;
第三次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=50,GLON=135(文件1中第四行),之后将文件2保存为文件5;
能不能具体点儿,我也尝试了awk通过字段赋值,但是得不到想要的效果,求大侠帮帮忙啊
你不说具体点别人怎么帮你?
这次你终于说明白了点。不过「次」是什么?把上一次使用了哪行的数据保存到某个文件里吗?还是通过命令行参数/交互式输入?
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#10

帖子 sharrybaby » 2012-06-01 21:48

lilydjwg 写了:
sharrybaby 写了: 由于文件1中数据量很多,手动修改不太可能。想要得到如下效果:
例如,第一次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=45,GLON=-105(文件1中第二行),之后将文件2保存为文件3;
第二次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=10,GLON=90(文件1中第三行),之后将文件2保存为文件4;
第三次只修改文件2中GLAT=0.00和GLON=-165.00为GLAT=50,GLON=135(文件1中第四行),之后将文件2保存为文件5;
能不能具体点儿,我也尝试了awk通过字段赋值,但是得不到想要的效果,求大侠帮帮忙啊
你不说具体点别人怎么帮你?
这次你终于说明白了点。不过「次」是什么?把上一次使用了哪行的数据保存到某个文件里吗?还是通过命令行参数/交互式输入?
文件3为:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 45 : latitude (deg)
GLON = -105 : longitude (deg)
文件4为:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 10 : latitude (deg)
GLON = 90 : longitude (deg)
文件5为:
Mandatory parameters:
NALT = 100 : number of altitude points
ZUB = 1000.00 : upper bound of atmosphere (km)
YYDDD = 92274 : year & day (YYDDD format)
UTSEC = 61200.00 : universal time (sec)
GLAT = 50 : latitude (deg)
GLON = 135 : longitude (deg)
头像
lilydjwg
论坛版主
帖子: 4250
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何由一个文本文件 拷贝到另一个文本文件

#11

帖子 lilydjwg » 2012-06-01 22:06

大概是这样子:
[python]
#!/usr/bin/env python3
# vim:fileencoding=utf-8

import sys

def main(datafile, tplfile):
df = open(datafile)
df.readline()
tpllines = open(tplfile).readlines()
for l in df:
glat, glon = l.strip().split()
for count, i in enumerate(tpllines):
with open(tplfile + '.%d' % count, 'w') as f:
if i.startswith('GLAT = '):
ii = i.split(' ', 3)
ii[2] = glat
i = ' '.join(ii)
elif i.startswith('GLON = '):
ii = i.split(' ', 3)
ii[2] = glon
i = ' '.join(ii)
f.write(i)

if __name__ == '__main__':
if len(sys.argv) == 3:
main(*sys.argv[1:])
else:
sys.exit('error')
[/python]
sharrybaby
帖子: 16
注册时间: 2012-05-30 20:04

Re: 如何由一个文本文件 拷贝到另一个文本文件

#12

帖子 sharrybaby » 2012-06-01 22:30

lilydjwg 写了:大概是这样子:
[python]
#!/usr/bin/env python3
# vim:fileencoding=utf-8

import sys

def main(datafile, tplfile):
df = open(datafile)
df.readline()
tpllines = open(tplfile).readlines()
for l in df:
glat, glon = l.strip().split()
for count, i in enumerate(tpllines):
with open(tplfile + '.%d' % count, 'w') as f:
if i.startswith('GLAT = '):
ii = i.split(' ', 3)
ii[2] = glat
i = ' '.join(ii)
elif i.startswith('GLON = '):
ii = i.split(' ', 3)
ii[2] = glon
i = ' '.join(ii)
f.write(i)

if __name__ == '__main__':
if len(sys.argv) == 3:
main(*sys.argv[1:])
else:
sys.exit('error')
[/python]
谢谢大侠啦!我现在用的是Ubuntu,运行您的代码,我需要装什么软件呢?
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 如何由一个文本文件 拷贝到另一个文本文件

#13

帖子 YeLee » 2012-06-01 22:44

嗯python。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何由一个文本文件 拷贝到另一个文本文件

#14

帖子 枫叶饭团 » 2012-06-01 22:45

sharrybaby 写了:
lilydjwg 写了:大概是这样子:
[python]
#!/usr/bin/env python3
# vim:fileencoding=utf-8

import sys

def main(datafile, tplfile):
df = open(datafile)
df.readline()
tpllines = open(tplfile).readlines()
for l in df:
glat, glon = l.strip().split()
for count, i in enumerate(tpllines):
with open(tplfile + '.%d' % count, 'w') as f:
if i.startswith('GLAT = '):
ii = i.split(' ', 3)
ii[2] = glat
i = ' '.join(ii)
elif i.startswith('GLON = '):
ii = i.split(' ', 3)
ii[2] = glon
i = ' '.join(ii)
f.write(i)

if __name__ == '__main__':
if len(sys.argv) == 3:
main(*sys.argv[1:])
else:
sys.exit('error')
[/python]
谢谢大侠啦!我现在用的是Ubuntu,运行您的代码,我需要装什么软件呢?
ubuntu不知道自带python3没有啊。。。不过这代码python2.7也能运行吧
头像
lilydjwg
论坛版主
帖子: 4250
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何由一个文本文件 拷贝到另一个文本文件

#15

帖子 lilydjwg » 2012-06-01 22:59

枫叶饭团 写了: 谢谢大侠啦!我现在用的是Ubuntu,运行您的代码,我需要装什么软件呢?
ubuntu不知道自带python3没有啊。。。不过这代码python2.7也能运行吧[/quote]
应该可以。
回复