我有javascript文件,其中包含以下
..............
templateUrl: 'views/product.html'
url: '/categories',
templateUrl: 'views/categories.html'
url: '/report',
templateUrl: 'views/report.html'
url: '/publisher',
templateUrl: 'views/publisher.html'
url: '/manageoutlet',
templateUrl: 'views/outlet.html'
url: '/order',
templateUrl: 'views/order.html'
url: '/mobileapp',
templateUrl: 'views/mobileapp.html'
url: '/cartitem/:id',
.....
.....
'url': 'http://fhdjhjd/fkdf',
........
........
我需要使用'url': 'http://fhdjhjd/fkdf',
从文件中获取行awk
,因为使用以下代码
sudo awk '{
if(match($0,/'url'\s*:\s*'.*'/)){
pattern = substr($0,RSTART,RLENGTH);
printf "%s\n",pattern;
}
}' "app.js"
但输出是
url: '/categories',
url: '/report',
url: '/publisher',
url: '/manageoutlet',
url: '/order',
url: '/mobileapp',
url: '/cartitem/:id',
我不知道为什么会这样。我需要得到这条线
'url': 'http://fhdjhjd/fkdf',
答案 0 :(得分:2)
使用\ 047匹配"'"
sudo awk '{
if(match($0,/\047url\047\s*:\s*'.*'/)){
pattern = substr($0,RSTART,RLENGTH);
printf "%s\n",pattern;
}
}' "app.js"
答案 1 :(得分:1)
试
awk -F":" '$2~/fhdjhjd/{ print }' file
答案 2 :(得分:1)
试试这个:
awk '($0~/'\''url'\'':/) {print}' File
在您的情况下,它将是:
sudo awk '($0~/'\''url'\'':/) {print}' "app.js"
答案 3 :(得分:1)
您应该使用'
'\''
正则表达式必须
'\''url'\''\s*:\s*'.*'
代码可以是
sudo awk '{
if(match($0,/'\''url'\''\s*:\s*'.*'/)){
pattern = substr($0,RSTART,RLENGTH);
printf "%s\n",pattern;
}
}' "app.js"
但我会使用更简单的awk代码
$ awk ' /'\''url'\''\s*:\s*'.*'/ ' "app.js"
'url': 'http://fhdjhjd/fkdf',