【发布时间】:2014-03-13 11:28:14
【问题描述】:
我有一个这样的文件
number: string(200)
issueDate: datetime
expiryDate: datetime
file_path: string(200)
filename: string(200)
description: text
我在 perl 中使用它来获得类似输出
FIELDS="number: string(200) issueDate: datetime expiryDate: datetime file_path: string(200) filename: string(200) description: text"
这是通过这个命令完成的
perl -plne '$_ = "FIELDS=\""."$_" if $. == 1; $\ = " ";$_ = "\""."$_" if eof' document.txt
现在我有了这样的完整文件
[entity]
JOHN
[BUNDLE]
mybundle
[FIELDS]
number: string(200)
issueDate: datetime
expiryDate: datetime
file_path: string(200)
filename: string(200)
description: text
现在我希望像这样在单独的行中输出到终端
ENTITY = JOHN
BUNDLE = Mybundle
FIELDS="number: string(200) issueDate: datetime expiryDate: datetime file_path: string(200) filename: string(200) description: text"
基本上是ENTITY、BUNDLE等变量NAME,应该从文件中获取
我该怎么做
【问题讨论】:
-
您是否有意在
=周围有两行空格,而不是第三行?另外,您是否只想为多行条目添加引号? -
如果你不把它写成单行,写一个可读性好的 perl 脚本会更容易。 if/else/while 和长变量名有助于提高可读性
标签: regex linux perl shell centos