How can I use line continuations in GNU awk?
-
If you're talking specifically about bash-comoliant shells, just use a backslash.
-
Wouldn’t the backslash be a part of the comment?
-
It a line continuation like so:
printf "This is going to be a really
long line that I want to break
into different segments" -
Sure, but that's inside a string:
$ printf "This is a # let's break \ > long line." This is a # let's break long line.
awk
remains unimpressed:$ echo "This is a test. > It has three lines, so I can > test awk on it." | awk ' > NR>2 # Skip two lines. \ > { print $2 } # should only print "awk" > ' is has test awk on it. awk
-
It works with long commands as well. Thinking in awk though, I would only use it after a statement is complete. You wouldn't be able to split up expressions like this, but you're just talking about making it more readable, it should work.
Backslash works for long commands as well, but it's not going to split up an expression or string properly.
Works:
apt install package1 \ package2 \ package3
Won't work:
apt install pack\ age1 package2 pack\ age3
-
You wouldn’t be able to split up expressions like this
Ah, that already answers my original question. A pity!
-
If cleaner is all you want, and you don't specifically care about the tool, maybe look at
pyp
-
You're probably best off writing the
awk
script in its own file instead of straight on the command line. Then you can comment to your heart's content without shell limitations. If you really want to do it inline, you might be able to do a$(# comment in a subshell)
. I remember doing something like that in the past, but I'm not near a computer to check right now. -
Ah, I could probably use Perl or something as well. I was hoping
awk
could do it though. But thank you, I hadn't heard aboutpyp
before! -
Thank you, the subshell idea is a good one!