パターン(\^|\~?)(\d|x|\*)+\.(\d|x|\*)+\.(\d|x|\*)+
とsed
を一致させようとしています。 私はを通じて実行しているファイルはこれです:正規表現とsedを一致させることができません
{
"name": "something",
"version": "0.0.1",
"description": "some desc",
"main": "gulpfile.js",
"directories": {
"test": "tests"
},
"dependencies": {
"babel-polyfill": "^6.7.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"gulp-clean": "^0.3.2",
"jquery": "^2.1.4",
"lodash": "^4.0.0",
"moment": "^2.13.0",
"moment-timezone": "^0.5.0",
"radium": "^0.16.2",
"react": "^15.1.0",
"react-bootstrap-sweetalert": "^1.1.10",
"react-dom": "^15.1.0",
"react-timeago": "^2.2.1",
"sprintf": "^0.1.5",
"smoothscroll": "~0.2.2"
},
"devDependencies": {
"babel": "^6.3.26",
"babelify": "^7.2.0",
"browserify": "~12.0.1",
"console-stamp": "^0.2.0",
"estraverse-fb": "^1.3.1",
"gulp": "^3.9.0",
"gulp-concat": "^2.6.0",
"gulp-sass": "^2.1.1",
"gulp-sourcemaps": "^1.6.0",
"gulp-util": "^3.0.7",
"lodash": "4.5.1",
"lodash.assign": "^3.2.0",
"lodash.isfunction": "^3.0.8",
"lodash.reduce": "^4.3.0",
"node-sass": "3.4.2",
"react-bootstrap": "^0.29.4",
"react-intl": "2.1.0",
"reactify": "1.1.1",
"sweetalert": "^1.1.3",
"vinyl": "^1.1.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"watchify": "^3.4.0",
"jsx-to-string": "~0.2.11"
},
"optionalDependencies": {
"pkg-save": "~1.0.2"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "someurl"
},
"author": "authorname",
"license": "MIT"
}
あなたがregexrで見ることができるように、それは所望のパターンと一致する(もマッチする「バージョン」が、それは私が後で取り組むよ別の問題です): http://regexr.com/3e324
私は、次のコマンドを使用してsedを起動する起動してい:簡潔にするために
cat package.json | sed 's/(\^|\~?)(\d|x|\*)+\.(\d|x|\*)+\.(\d|x|\*)+/Hello/g' -r
、それは(。つまり、フィルタ処理されていない入力)のようなものを出力します
...
"dependencies": {
"babel-polyfill": "^6.7.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"gulp-clean": "^0.3.2",
...
すべての数字を "Hello"に置き換える必要があります。
何が間違っていますか?
不正なフラグと何か(私は/gm
を試しました)
正しい正規表現エンジンを使用していないか(拡張正規表現を利用するには-r
オプションを渡しています)?
私はあなたの 'sed'問題(申し訳ありません)に対する答えはわかりませんが、JSONのような仕事をしているかどうかを言いたいのですが、[jq]のようなツールを使いたいかもしれません。 (https://stedolan.github.io/jq/) – Matt
ありがとう、これは私が必要なものかもしれません! 私はpackage.jsonファイルを直接操作できるツールが必要です。また、私は何が変更されているかを完全に制御できます。 –
私は '\ d'ではなく[[0-9]'を使って修正しました。 (私はまだJSONをたくさん扱う場合には 'jq'を使って2番目になります) – Aaron