Home > Software design >  How to grab fields in inverted commas
How to grab fields in inverted commas

Time:09-27

I have a text file which contains the following lines:

"user","password_last_changed","expires_in"
"jeffrey","2021-09-21 12:54:26","90 days"
"root","2021-09-21 11:06:57","0 days"

How can I grab two fields jeffrey and 90 days from inverted commas and save in a variable.

CodePudding user response:

while read -r line; do # read in line by line
    name=$(echo $line | awk -F, ' { print $1} ' | sed 's/"//g') # grap first col and strip "
    expire=$(echo $line | awk -F, ' { print $3} '| sed 's/"//g') # grap third col and strip "
    echo "$name" "$expire" # do your business
done < yourfile.txt

CodePudding user response:

IFS=","

arr=( $(cat txt | head -2 | tail -1  | cut -d, -f 1,3 | tr -d '"') )
echo "${arr[0]}"
echo "${arr[1]}"

The result is into an array, you can access to the elements by index.

CodePudding user response:

If awk is an option, you could save an array and then save the elements as individual variables.

$ IFS="\"" read -ra var <<< $(awk -F, '/jeffrey/{ print $1, $NF }' input_file)
$ $ var2="${var[3]}"
$ echo "$var2"
90 days
$ var1="${var[1]}"
$ echo "$var1"
jeffrey
  • Related