分页: 1 / 1
求助 一个文档处理问题 合并文档类
发表于 : 2009-09-15 16:36
由 abbott
有两个文档,
AbbNew.txt 每一行的字符用$i表示
FullName.txt 每一行的字符用$j表示
都是字符,
要求最后输出一个文档,具有这样的结构:
@string{$i = {$j}}
我是在建立自己的bibtex数据库,用到期刊的缩写名称对应关系...
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-15 16:55
由 t3swing
贴一段出来吧 ,直观一点不容易理解错 ,lz的要求,我会考虑用excel搞定
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-15 17:05
由 abbott
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}}
......
由于太麻烦了,我之给出了最后结果的前两行......
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 9:55
由 t3swing
应该有很简单的方法,期待高人给出,我使用的方法很直观,但显得罗嗦,能够处理
代码: 全选
#!/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
使用方法 XXX.sh AbbNew.txt FullName.txt
生成文件在outfile.txt(你先确保你文件下面没这个文件,否则删了不负责)
象这种整列文本处理用excel处理起来也很方便,我原来这么搞过
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 10:13
由 yaoms
代码: 全选
awk 'NR==FNR{a[FNR]=$0} NR>FNR {print "@string{"a[FNR]" = {"$0"}}"}' AbbNew.txt FullNames.txt
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 10:14
由 abbott
咱们的做法比较类似.....
#! /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相同的了.....
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 10:17
由 abbott
yaoms 写了:代码: 全选
awk 'NR==FNR{a[FNR]=$0} NR>FNR {print "@string{"a[FNR]" = {"$0"}}"}' AbbNew.txt FullNames.txt
这个太强了.....
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 10:23
由 t3swing
文本处理这一块,只有更强,没有最好
学的东西多着呢 ,光grep sed awk3条命令就够学好久的
强大的awk
学习了
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 13:22
由 cocoready
如果只是连接在一起,可以用pasted吧。
Re: 求助 一个文档处理问题 合并文档类
发表于 : 2009-09-16 13:31
由 abbott
paste 可能是我格式控制有问题,
不能保证要求的格式....