我有一个xml文件,它有'<'在前面没有转义字符的行之间.. 所以我首先尝试使用以下方法解析xml:
xmllint --noout filename.xml
但这不起作用..因为我的xml版本是1.1,不支持.. 所以作为替代,我开始搜索'<'不包括句子的开头或结尾..
应该相当容易..我试过:
grep -v '^[<]'
但这不起作用..有人可以帮忙吗?
例如: 文件名有:
<instrument F001="6-A-1046" INSTRUMENT_ID="<xyz>" >
<field fieldname="CUR007" value="<EUR>"/>
<field fieldname="C207" value="2023-01-11"/>
<field fieldname="INS160" value="0"/>
<field fieldname="PRD013" value="1020"/>
<field fieldname="PRD150" value="0"/>
<field fieldname="PRD205" value="0"/>
</instrument>
我希望输出
<instrument F001="6-A-1046" INSTRUMENT_ID="<xyz>" >
<field fieldname="CUR007" value="<EUR>"/>
答案 0 :(得分:1)
搜索除了应该是尖括号的第一个/最后一个非空白字符以外的grep '^\s*<.*[<>].*>\s*'
或grep '^\s*<.*[<>].*>\s*' << EOF
> <instrument F001="6-A-1046" INSTRUMENT_ID="<xyz>" >
> <field fieldname="CUR007" value="<EUR>"/>
> <field fieldname="C207" value="2023-01-11"/>
> <field fieldname="INS160" value="0"/>
> <field fieldname="PRD013" value="1020"/>
> <field fieldname="PRD150" value="0"/>
> <field fieldname="PRD205" value="0"/>
> </instrument>
> EOF
。
<instrument F001="6-A-1046" INSTRUMENT_ID="<xyz>" >
<field fieldname="CUR007" value="<EUR>"/>
请注意,这与整行匹配,因此如果您想要对该行执行某些操作(而不仅仅是其中的一部分),则可以使用它。
测试:
<section>
<v-parallax :src="about.whiskey">
<v-layout column align-left justify-center>
<h1 class="beige">{{ about.mission.header }}</h1>
<h6 class="beige">{{ about.mission.subheader }}</h6>
</v-layout>
</v-parallax>
</section>
export default {
data() {
return {
about: {
whiskey: '../../assets/images/bf-whiskey-glass.jpg',
whiskeys: '../../assets/images/three-whiskeys.jpg',
metrics: '../../assets/images/metrics.jpg',
<section>
<v-parallax :src="about.whiskeys">
<v-layout column align-right justify-center>
<h1 class="beige text-sm-right">{{ about.solution.title }}</h1>
</v-layout>
</v-parallax>
</section>
<section>
<v-parallax :src="about.metrics">
<v-layout column align-left justify-center>
<h1 class="beige">{{ about.press.title }}</h1>
</v-layout>
</v-parallax>
</section>
===========================================================================
var path = require('path')
var webpack = require('webpack')
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, './dist'),
publicPath: '/dist/',
filename: 'build.js'
},
resolve: {
extensions: ['.js', '.vue'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'public': path.resolve(__dirname, './public')
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
}
// other vue-loader options go here
}
},
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modul
},
{
test: /\.(png|jpg|gif|svg)$/,
// use: [
// {
// loader: 'url-loader',
// options: {
// limit: 8192
// }
// }
// ]
loader: 'file-loader',
options: {
objectAssign: 'Object.assign'
}
},
{
test: /\.styl$/,
loader: ['style-loader', 'css-loader', 'stylus-loader']
}
]
},
devServer: {
historyApiFallback: true,
noInfo: true
},
performance: {
hints: false
},
devtool: '#eval-source-map'
}
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
])
}
输出:
{{1}}
答案 1 :(得分:1)
我创建了一个不同的示例来添加更多案例
$ cat ip.txt
foo bar < xyz
<123 abc <42> >
<good>
bad > line
$ # get lines having < not at start of line
$ grep '[^[:blank:]].*<' ip.txt
foo bar < xyz
<123 abc <42> >
$ # get lines having > not at end of line
$ grep '>.*[^[:blank:]]' ip.txt
<123 abc <42> >
bad > line
$ # combining the two
$ grep -E '[^[:blank:]].*<|>.*[^[:blank:]]' ip.txt
foo bar < xyz
<123 abc <42> >
bad > line
[:blank:]
代表空格和制表符[^[:blank:]]
将匹配非空白字符