求助 一个文档处理问题 合并文档类
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
求助 一个文档处理问题 合并文档类
有两个文档,
AbbNew.txt 每一行的字符用$i表示
FullName.txt 每一行的字符用$j表示
都是字符,
要求最后输出一个文档,具有这样的结构:
@string{$i = {$j}}
我是在建立自己的bibtex数据库,用到期刊的缩写名称对应关系...
AbbNew.txt 每一行的字符用$i表示
FullName.txt 每一行的字符用$j表示
都是字符,
要求最后输出一个文档,具有这样的结构:
@string{$i = {$j}}
我是在建立自己的bibtex数据库,用到期刊的缩写名称对应关系...
-
- 帖子: 1028
- 注册时间: 2008-11-01 21:42
- 来自: 树下板凳
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 求助 一个文档处理问题 合并文档类
AbbNew.txt 内容如下:
[abbott@master temp]$ head -15 AbbNew.txt
Acc. Chem. Res.
ACS Chem. Biol.
ACS Symp. Ser.
Acta Biochim. Pol.
Acta Chim. Slov.
Acta Crystallogr., Sect. A: Found. Crystallogr.
Acta Crystallogr., Sect. D: Biol. Crystallogr.
Acta Crystallogr., Sect. E: Struct. Rep. Online
Acta Crystallogr., Sect. F: Struct. Biol. Cryst. Commun.
Acta Mater.
Acta Pharm. (Zagreb, Croatia)
Acta Pharmacol. Sin.
Acta Phys. Pol. B Proc. Suppl.
Acta Phys. Pol., A
Acta Phys. Pol., B
FullName.txt如下(前15行)
[abbott@master temp]$ head -15 FullNames.txt
Accounts of Chemical Research
ACS Chemical Biology
ACS Symposium Series
Acta Biochimica Polonica
Acta Chimica Slovenica
Acta Crystallographica, Section A: Foundations of Crystallography
Acta Crystallographica, Section E: Structure Reports Online
Acta Crystallographica, Section F: Structural Biology and Crystallization
Acta Materialia
Acta Pharmaceutica (Zagreb, Croatia)
Acta Pharmacologica Sinica
Acta Physica Polonica B Proceedings Supplement
Acta Physica Polonica, A
Acta Physica Polonica, B
Acta Physiologica
原文数白行.....
最后的文档格式:
@string{Acc. Chem. Res. = {Accounts of Chemical Research}}
@string{ACS Chem. Biol. = {ACS Chemical Biology}}
......
由于太麻烦了,我之给出了最后结果的前两行......
[abbott@master temp]$ head -15 AbbNew.txt
Acc. Chem. Res.
ACS Chem. Biol.
ACS Symp. Ser.
Acta Biochim. Pol.
Acta Chim. Slov.
Acta Crystallogr., Sect. A: Found. Crystallogr.
Acta Crystallogr., Sect. D: Biol. Crystallogr.
Acta Crystallogr., Sect. E: Struct. Rep. Online
Acta Crystallogr., Sect. F: Struct. Biol. Cryst. Commun.
Acta Mater.
Acta Pharm. (Zagreb, Croatia)
Acta Pharmacol. Sin.
Acta Phys. Pol. B Proc. Suppl.
Acta Phys. Pol., A
Acta Phys. Pol., B
FullName.txt如下(前15行)
[abbott@master temp]$ head -15 FullNames.txt
Accounts of Chemical Research
ACS Chemical Biology
ACS Symposium Series
Acta Biochimica Polonica
Acta Chimica Slovenica
Acta Crystallographica, Section A: Foundations of Crystallography
Acta Crystallographica, Section E: Structure Reports Online
Acta Crystallographica, Section F: Structural Biology and Crystallization
Acta Materialia
Acta Pharmaceutica (Zagreb, Croatia)
Acta Pharmacologica Sinica
Acta Physica Polonica B Proceedings Supplement
Acta Physica Polonica, A
Acta Physica Polonica, B
Acta Physiologica
原文数白行.....
最后的文档格式:
@string{Acc. Chem. Res. = {Accounts of Chemical Research}}
@string{ACS Chem. Biol. = {ACS Chemical Biology}}
......
由于太麻烦了,我之给出了最后结果的前两行......
-
- 帖子: 1028
- 注册时间: 2008-11-01 21:42
- 来自: 树下板凳
Re: 求助 一个文档处理问题 合并文档类
应该有很简单的方法,期待高人给出,我使用的方法很直观,但显得罗嗦,能够处理
使用方法 XXX.sh AbbNew.txt FullName.txt
生成文件在outfile.txt(你先确保你文件下面没这个文件,否则删了不负责)
象这种整列文本处理用excel处理起来也很方便,我原来这么搞过
代码: 全选
#!/bin/bash
if [ $# -ne 2 ] ; then
echo "输入两个文件以便处理!"
exit 66
fi
line_a=$(wc -l $1 |grep -o "[0-9]*")
line_b=$(wc -l $2 |grep -o "[0-9]*")
echo "文件1行数:$line_a 文件2行数: $line_b"
if [ $line_a -gt $line_b ] ; then
line=$line_b
else
line=$line_a
fi
echo "合并行数:$line"
cat /dev/null > outfile.txt
for var in $(seq $line) ;do
a=$(sed -n "${var}p" $1)
b=$(sed -n "${var}p" $2)
echo "@string{${a}={${b}}}" >>outfile.txt
done
exit 0
生成文件在outfile.txt(你先确保你文件下面没这个文件,否则删了不负责)
象这种整列文本处理用excel处理起来也很方便,我原来这么搞过
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
Re: 求助 一个文档处理问题 合并文档类
代码: 全选
awk 'NR==FNR{a[FNR]=$0} NR>FNR {print "@string{"a[FNR]" = {"$0"}}"}' AbbNew.txt FullNames.txt
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
alias 爱慕颇雷尔='mplayer'
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 求助 一个文档处理问题 合并文档类
咱们的做法比较类似.....
#! /bin/bash
AbbFile=Abb_Z.txt
FullFill=FullName_Z.txt
lines=` cat $AbbFile | wc -l `
rm -fr /home/abbott/BibTex/temp/Result.txt
let i=1
for (( num=1; num<=$lines; num++ ))
do
AbbName=`sed -n "$num"p $AbbFile `
FullName=`sed -n "$num"p $FullFill `
let i=$i+1
echo @string{$AbbName = {$FullName}} >> Result.txt
done
处理结果还比较满意.....
目前没想到其他的方法.....
两个文档,在处理之前,我已经给搞成Line相同的了.....
#! /bin/bash
AbbFile=Abb_Z.txt
FullFill=FullName_Z.txt
lines=` cat $AbbFile | wc -l `
rm -fr /home/abbott/BibTex/temp/Result.txt
let i=1
for (( num=1; num<=$lines; num++ ))
do
AbbName=`sed -n "$num"p $AbbFile `
FullName=`sed -n "$num"p $FullFill `
let i=$i+1
echo @string{$AbbName = {$FullName}} >> Result.txt
done
处理结果还比较满意.....
目前没想到其他的方法.....
两个文档,在处理之前,我已经给搞成Line相同的了.....
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 求助 一个文档处理问题 合并文档类
yaoms 写了:代码: 全选
awk 'NR==FNR{a[FNR]=$0} NR>FNR {print "@string{"a[FNR]" = {"$0"}}"}' AbbNew.txt FullNames.txt
这个太强了.....
-
- 帖子: 1028
- 注册时间: 2008-11-01 21:42
- 来自: 树下板凳
Re: 求助 一个文档处理问题 合并文档类
文本处理这一块,只有更强,没有最好
学的东西多着呢 ,光grep sed awk3条命令就够学好久的
强大的awk
学习了
学的东西多着呢 ,光grep sed awk3条命令就够学好久的
强大的awk
学习了
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
-
- 帖子: 15
- 注册时间: 2009-08-13 12:11
Re: 求助 一个文档处理问题 合并文档类
如果只是连接在一起,可以用pasted吧。
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 求助 一个文档处理问题 合并文档类
paste 可能是我格式控制有问题,
不能保证要求的格式....
不能保证要求的格式....