Question: `$ echo file.txt`

```
NAME="Ubuntu"                           <--- some of this
VERSION="20.04.4 LTS (Focal Fossa)"     <--- and some of this
ID=ubuntu
ID_LIKE=debian
VERSION_ID="20.04"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal

```

I want this: `Ubuntu 20.04.4 LTS`.

I managed with two commands:

```bash
echo "$(grep '^NAME="' ./file.txt | sed -E 's/NAME="(.*)"/\1/') $(grep '^VERSION="' ./file.txt | sed -E 's/VERSION="(.*) \(.*"/\1/')"

```

How could I simplify this to one command using grep/sed or perl?

Answer: 
With your shown samples try following `awk` code.

```bash
awk -F'"' '/^NAME="/{name=$2;next} /^VERSION="/{print name,$2}' Input_file

```

***Explanation:***

* Setting field separator as `"` for all the lines here.
* Checking condition if line starts with `Name=` then create variable name which has 2nd field. `next` will skip all further statements from there of `awk` program, they needed not to be executed.
* Then checking if a line starts from `VERSION=` then print name and 2nd field here as per requirement.
Here is another `awk` solution:

```bash
awk -F '=?"' '$1 == "NAME" {s = $2; next}
$1 == "VERSION" {sub(/ \(.*/, "", $2); print s, $2}' file

Ubuntu 20.04.4 LTS

```