Sponsored Content
Top Forums Shell Programming and Scripting Building JSON command with bash script Post 303039241 by Chubler_XL on Thursday 26th of September 2019 07:57:09 PM
Old 09-26-2019
Quote:
Originally Posted by psysc0rpi0n
Ok, I'm going to try your examples. This is not trivial for a starter. I've just been reading but not practicing much, so this is not clear at first sight!

--- Post updated at 10:02 PM ---



I don't fully understand what you mean by:


and
.

I need to read about expansions!
Fortunately this stuff is pretty well documented. I'd start with Shell Expansions, it's probably best while reading this to have a shell handy and try out the different expansions/substitutions mentioned with something like the pparm script posted above. Ensure you understand why they shell works the way it does.

For example word splitting occurs before pathname expansion, so when a file containing white space is expanded it wont be split.
Parameter and variable expansion occurs before word splitting so variables with white spaces are split:

Code:
$ ls
 jason_expand   pparm  'test with space'
$ ./pparm test*
Param 1: test with space
$ VAR="test with space"
$ ./pparm $VAR
Param 1: test
Param 2: with
Param 3: space
$ VAR=test
$ ./pparm ${VAR}*
<work thru the manual and decide what will happen here before trying it>


Last edited by Chubler_XL; 09-26-2019 at 09:04 PM..
These 2 Users Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Building command line parameters of arbitrary length

I couldn't find an existing thread that addressed this question, so hopefully this isn't redundant with anything previously posted. Here goes: I am writing a C-Shell script that runs a program that takes an arbitrary number of parameters: myprog -a file1 \ -b file2 \ -c file3 ... \ -n... (2 Replies)
Discussion started by: cmcnorgan
2 Replies

2. Shell Programming and Scripting

BASH SCRIPT of LS command

I need help in writing a BASH SCRIPT of ls command. for example: $ ./do_ls.sh files f1.txt f2.jpeg f3.doc $ ./do_ls.sh dirs folder1 folder2 folder3 My attempt: #!/bin/bash # if test $# -d file then echo $dirs else (3 Replies)
Discussion started by: above8k
3 Replies

3. Shell Programming and Scripting

How to define a variable in a BASH script by using a JSON file online?

Hello, I would like to modify an existing script of mine that uses a manually defined "MCVERSION" variable and make it define that variable instead based on this JSON file stored online: https://s3.amazonaws.com/Minecraft.Download/versions/versions.json Within that JSON, I 'm looking for... (4 Replies)
Discussion started by: nbsparks
4 Replies

4. Shell Programming and Scripting

Bash script - cygwin (powershell?) pull from GitHub API Parse JSON

All, Have a weird issue where i need to generate a report from GitHub monthly detailing user accounts and the last time they logged in. I'm using a windows box to do this (work issued) and would like to know if anyone has any experience scripting for GitAPI using windows / cygwin / powershell?... (9 Replies)
Discussion started by: ChocoTaco
9 Replies

5. Shell Programming and Scripting

UNIX or Perl script to convert JSON to CSV

Is there a Unix or Perl script that converts JSON files to CSV or tab delimited format? We are running AIX 6.1. Thanks in advance! (1 Reply)
Discussion started by: warpmail
1 Replies

6. Shell Programming and Scripting

Parsing and Editing a json file with bash script

I am trying to automate editing of a json file using bash script. The file I initially receive is { "appMap": { "URL1": { "name": "a" }, "URL2": { "name": "b" }, "URL3": { "name": "c" }, } WHat I would like to do is replace... (5 Replies)
Discussion started by: Junaid Subhani
5 Replies

7. UNIX for Beginners Questions & Answers

Json field grap via shell script/awk

i have a json data that looks like this: { "ip": "16.66.35.10", "hostname": "No Hostname", "city": "Stepney", "region": "England", "country": "GB", "loc": "51.57,-0.0333", "org": "AS6871 British Telecommunications PLC", "postal": "E1" } im looking for a way to assign... (9 Replies)
Discussion started by: SkySmart
9 Replies

8. Shell Programming and Scripting

JSON structure to table form in awk, bash

Hello guys, I want to parse a JSON file in order to get the data in a table form. My JSON file is like this: { "document":{ "page": }, { "column": } ] }, { ... (6 Replies)
Discussion started by: Gescad
6 Replies

9. Shell Programming and Scripting

Fun with terminal plotting JSON data at the command line

One of the great thing about unix is the ability to pipe multiple programs together to manipulate data. Plain, unstructured text is the most common type of data that is passed between programs, but these days JSON is becoming more popular. I thought it would be fun to pipe together some command... (1 Reply)
Discussion started by: kbrazil
1 Replies

10. UNIX for Beginners Questions & Answers

How to convert any shell command output to JSON format?

Hi All, I am new to shell scripting, Need your help in creating a shell script which converts any unix command output to JSON format output. example: sample df -h command ouput : Filesystem size used avail capacity Mounted /dev/dsk/c1t0d0s0 8.1G 4.0G 4.0G 50% /... (13 Replies)
Discussion started by: balu1234
13 Replies
expr(1) 						      General Commands Manual							   expr(1)

NAME
expr - Evaluates arguments as expressions SYNOPSIS
expr expression STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: expr: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
None OPERANDS
The single expression evaluated by expr will be formed from the operands, as described in the DESCRIPTION section. Each of the expression operator symbols: ( ) | & = > >= < <= != + - * / % : and the symbols integer and string in the DESCRIPTION sec- tion must be provided as separate arguments to expr. Expression to be evaluated, formed as explained in the DESCRIPTION section. DESCRIPTION
The expr command reads an expression, evaluates it, and writes the result to standard output. Within the expression argument, you must separate each term with spaces, precede characters special to the shell with a (backslash), and quote strings containing spaces or other special characters. Note that expr returns 0 to indicate a zero value, rather than the null string. Integers can be preceded by a unary minus sign. Internally, integers are treated as 64-bit or 32-bit two's complement numbers, depending on the word size of the hardware platform. The operators and keywords are described in the following listing. Characters that need to be escaped are preceded by a (backslash). The list is in order of increasing precedence with equal precedence operators grouped within {} (braces). Returns expression1 if it is neither null nor 0 (zero); otherwise, returns expression2. Returns expression1 if neither expression1 nor expression2 is null nor 0; oth- erwise, returns 0. Returns the result of an integer comparison if both expressions are integers; otherwise, returns the result of a string comparison. Adds or subtracts integer-valued arguments. Multiplies, divides, or provides the remainder from the division of integer-val- ued arguments. Compares expression1 with expression2, which must be a basic regular expression, with syntax as described for grep, except that all patterns are anchored, so ^ (circumflex) (which anchors a pattern to the beginning of a line) is not a special character in this context. Normally, the matching operator returns the number of characters matched. Alternatively, you can use the (...) symbols in expres- sion2 to return a portion of expression1. Provides expression grouping. An argument consisting only of an (optional) unary minus followed by digits. A string argument. Refer to the STRING OPERAND section. To avoid unpredictable results when using a range expression to match a class of characters, use a character class expression rather than a standard range expression. For information about character class expressions, see the discussion of this topic included in the description of the grep command. FUNCTIONS [Tru64 UNIX] The expr command provides the following string-expression functions. Strings containing white space must be quoted. A string argument should not be one of the expression operator symbols shown in the OPERANDS section or one of the string function names below. You cannot use, for example, match "$subject" "$pattern" unless it is confirmed that subject and pattern do not match this viola- tion. The first character of a string is position 1. The information returned by all these functions is in the form of a string: [Tru64 UNIX] Compares each character in the second string against each character in the first string and returns the position in the first string of the first match found, where the first match is the match closest to the beginning of string1. [Tru64 UNIX] Returns the length of the string argument. [Tru64 UNIX] See the description of the : (colon) match operator, above. [Tru64 UNIX] Returns the substring of string that begins at character position start and is length characters long. STRING OPERAND A string argument is an argument that cannot be identified as an integer argument or as one of the expression operator symbols shown in the OPERANDS section. The use of string arguments length, substr, index or match produces unspecified results. EXIT STATUS
The expr command returns the following exit values: The expression is neither null nor 0. The expression is null or 0. The expression is invalid. An error occurred. EXAMPLES
To increment a shell variable, enter: COUNT=`expr $COUNT + 1` This adds 1 to the COUNT shell variable (see sh for details). To find the length of a shell variable, enter: RES=`expr "$VAR" : ".*"` Note that VAR is in double quotes to avoid problems where VAR is NULL or contains embedded spaces. The regular expression is also quoted to avoid expansion by the shell. This operation can also be performed as: RES=`expr length "$VAR"` To use part of a shell variable, enter: RES=`expr "$VAR" : "-*(.*)"` This removes leading - (dashes), if any, from VAR. If the ( ) characters were omitted, RES would contain the length of VAR. To find a character from one string in another string, enter: INDEX=`expr index "Hello World!" "Wo"` Note that the returned value is 5, not 7. The first match is the fifth character in string1, matching the o in string2 rather than the W, which is the seventh character in string1. Special considerations: RES=`expr "x$VAR" : "x-*(.*)"` This succeeds even if VAR has the value - (dash). RES=`expr "x$VAR" = "x=" This succeeds even if VAR has the value = (equal sign). ENVIRONMENT VARIABLES
The following environment variables affect the execution of expr: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments) and the behavior of character classes in regular expressions.. Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: grep(1), Bourne shell sh(1b), POSIX shell sh(1p), test(1) Functions: string(3), wcscat(3) Standards: standards(5) expr(1)
All times are GMT -4. The time now is 02:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy