You could try [0-9] instead?
awk '/\/dev\/loop[0-9]/ {print}'
If you have a larger sample of input and desired output, people can help you better.
You could try [0-9] instead?
awk '/\/dev\/loop[0-9]/ {print}'
If you have a larger sample of input and desired output, people can help you better.
I get it, sometimes you just do something for the challenge.
It’s really great what you can accomplish when you know a little more than the bare minimum of the tools at your disposal (^^,)
And I had the same experience after learning a bit more about awk for the fist time, hahaha.
Virtual memory is different from swap memory.
Swap memory is used when you run out of physical memory, so the memory is extended to your storage.
Virtual memory is an abstraction that lies between programs using memory and the physical memory in the device. It can be something like compression and memory-mapped files, like mentioned.
And yes, some swap is still useful, up to something like 4G for larger systems.
And if you want to hibernate to disk, you may need as much swap as your physical memory. But maybe that’s changed. I haven’t done that in years.
In the end I’ve used the first command you wrote, because KISS, but I appreciate your explanation
There’s no shame in combining multiple tools, that’s what pipelines are all about 😄.
Also there’s a different tool that I would use if I want to output a specific column: awk
df -h —output=avail,source | awk ‘/\/dev\/dm-2/ {print $1}’
For lines matching /dev/dm-2
print the first column. awk
splits columns on whitespace by default.
But I would probably use grep+awk.
Sed is definitely a very powerful tool, which leads to complex documentation. But I really like the filtering options before using the search/replace.
You can select specific lines, with regex or by using a line number; or you can select multiple lines by using a comma to specify a range.
E.g. /mystring/,100s/input/output/g
: in the lines starting from the first match of /mystring/
until line 100
, replace input
with output
The easiest way is probably without sed, which you mentioned:
df -h --output=avail /dev/dm-2| tail -n1
But purely with sed it would be something like this:
df -h --output=avail,source | sed -n ‘/\/dev\/dm-2/s!/dev/dm-2!!p’
-n
tells sed to not print lines by default
/[regex]/
selects the likes matching regex. We need to escape the slashes inside the regex.
s///
does search-and-replace, and has a special feature: it can use any character, not just a slash. So I used three exclamation points instead , so that I don’t need to escape the slashes. Here we replace the device with the empty string.
p
prints the result
Check the sed man page for more details: https://linux.die.net/man/1/sed
🦀 🦀🦀🦀🦀🦀🦀🦀
Boy am I glad I don’t do C++ anymore. That string handling with the overloaded bitshift operator was wild.
What the heck is endl???
The best thing is to use a different device, period.
Since the company is lord and master over the device, in theory, they can see anything you’re doing.
Maybe not decrypting wireguard traffic in practice, but still see that you’re doing non-official things on the device that are probably not allowed. They might think you’re a whistleblower or a corporate spy or something.
I have no idea where you work, but if they install a CA they’re probably have some kind of monitoring to see what programs are installed/running.
If the company CA is all you’re worried about, running a browser that uses its own CA list should be enough.
Remember: militaries usually buy from the lowest bidder, so anything military-grade is probably low quality.
Also, email isn’t a great medium for communicating securely, since the other party has to be just as mindful about security as you; otherwise it’s basically security theater.