Command the power of the command line

Status
Not open for further replies.
Good stuff, but then there's something wrong with his verbatim copy of a directory... You should add the p option to the tar extraction command, in order to preserve file attributes (ctime, mtime, atime, owner, group) - ie, tar xpvf and not tar xvf.

I use this regularly in order to make verbatim copies of a directory:

(cd /path/to/src/dir && tar cf - .)|(cd /path/to/dst/dir && tar xpvf -)
 
Here's a good example of the command line in use. At my job, the internal DNS zone files only mapped addresses up to 191.168.1.81, thus unresolving all addresses from 82 to 254. With this simple command, I updated both the zone file and reverse zone file:

for i in `seq 82 254`; do echo -e "dev$i\t\tIN A 192.168.1.$i" >>local.zone; echo -e "192.168.1.$i\t\tIN PTR dev$i." >>local.reverse.zone; done

And voilà, job done - well, after hand editing both files and changing the serial and then typing service named reload.
 
Another good one :p

My girlfriend programs Java, and she got herself in her head to write a program to solve Sudoku grids (and it works!). However, she needed grids...

Well, she found an URL giving different grids each time it was invoked, and gave it to me. I had to take the case with values in them and output for each grid the correct instructions to set the grid. To make matters more complex yet, the grids were 16x16, and numbers 10 to 16 were printed A, B, ..., G. She wanted the numbers.

Complex task? No, a quick look at the generated HTML, and a one liner:

for i in `seq 30`; do htmlcode=orig.$i; gridfile=grid$i.java; wget -O $htmlcode -nv http://the.url/which/I/dont/remember; echo "// Grid $i" >$gridfile; perl -ne '($x, $y, $val) = /name="sudoku\[(\d+)\]\[(\d+)\]" value="(.)"/ or next; $val =~ /\D/ and $val = 10 + (ord($val) - ord("A")); print "grid.set($x, $y, $val);\n"' <$htmlcode >$gridfile; rm $htmlcode -f;done

OK, this one is a little complex, but I did type it in one line only :p The time to build it properly, double check it, generate the thirty grids: 20 minutes, the vast majority of which has been spent downloading the grids...
 
Status
Not open for further replies.
Back