Grepping in a Windows World
May 31

Lately I’ve been doing more work on Windows platforms and I’ve been missing the Linux command line.  I’m a huge user of cat, sed, awk and most of all grep. I’m also a huge bash script writer to help with everyday issues.  Recently I started playing around with Windows PowerShell and so I’ll be starting to list PowerShell tips from time to time.  No I haven’t totally gone to the dark side, I’m still a huge Linux user, but PowerShell does seem like a nice option when you have to use Windows.

So, my latest issue is I needed to search through lots of logs to find an email address.  Normally I’d use grep to parse through the files.  Instead I opened up a Powershell prompt and used the following command

findstr /I my@email.com logfile.log

Findstr is just like grep and has a lot of the same options.  The /I tells it to be case-insensitive.  The my@email.com is what I’m looking for in logfile.log.  Here are the different settings that you can use:

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]

/B         Matches pattern if at the beginning of a line.
/E         Matches pattern if at the end of a line.
/L         Uses search strings literally.
/R         Uses search strings as regular expressions.
/S         Searches for matching files in the current directory and all
subdirectories.
/I         Specifies that the search is not to be case-sensitive.
/X         Prints lines that match exactly.
/V         Prints only lines that do not contain a match.
/N         Prints the line number before each line that matches.
/M         Prints only the filename if a file contains a match.
/O         Prints character offset before each matching line.
/P         Skip files with non-printable characters.
/OFF[LINE] Do not skip files with offline attribute set.
/A:attr    Specifies color attribute with two hex digits. See “color /?”
/F:file    Reads file list from the specified file(/ stands for console).
/C:string  Uses specified string as a literal search string.
/G:file    Gets search strings from the specified file(/ stands for console).
/D:dir     Search a semicolon delimited list of directories
strings    Text to be searched for.
[drive:][path]filename
Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, ‘FINDSTR “hello there” x.y’ searches for “hello” or
“there” in file x.y.  ‘FINDSTR /C:”hello there” x.y’ searches for
“hello there” in file x.y.

Regular expression quick reference:
.        Wildcard: any character
*        Repeat: zero or more occurrences of previous character or class
^        Line position: beginning of line
$        Line position: end of line
[class]  Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-y]    Range: any characters within the specified range
\x       Escape: literal use of metacharacter x
\<xyz    Word position: beginning of word
xyz\>    Word position: end of word

For full information on FINDSTR regular expressions refer to the online Command
Reference.

What me, reboot? Never
Feb 22

I came across an excellent article the other day which talks about server rebooting.  I’ve followed the same practice for many years.  There are very few cases where you should reboot a server.  From experience I’ve actually seen server end up in a worse state because the server was rebooted.  Lesson, it’s always better to troubleshoot a running server, than to reboot and not be able to get into the operating system.

A new way to manage files and backups
Feb 7

Do you have multiple computers? Maybe one at work and one at home, or maybe you have two at work. Have you ever said I would love to have a way to keep my documents on multiple computers at the same time and not have to worry about copying the files back and forth. Or maybe you’re just looking for a simple way to backup your files in case of emergencies. Well, you should check out DropBox.

DropBox is a new way to manage your files. First you create an account one their website, then you install a piece of software on all your computers. Then when you add a file into your DropBox on one of your computers, immediately all your other computers download the new file. If you make a change to that document on any of the computers, all the others immediately pickup the change. No more copying your documents to CD/DVD/USB and then over to your other computer. Now all your documents are synchronized immediately.

Here’s another benefit.  If you have multiple computers that have different operating systems, this doesn’t matter.  You can automatically synchronize files between Windows, Mac and Linux too.

Another great feature of DropBox, have you ever accidentally deleted or changed a file and wished that you had a backup copy of it. Well now you do. Now you can recover deleted files or get back previous versions of your documents.

To get started, just go to DropBox and click Download DropBox.

Turning xp_cmdshell on in Microsoft SQL Server
Dec 12

No it’s not Linux related, but it’s something I came across in my job today. I needed to be able to use xp_cmdshell to have SQL Server execute a dos command, but that command is turned off by default (for security reasons).

Open up Query Browser or MS SQL Server Management Studio and log in as SA or another privledged user. Open a new query. Run

sp_configure

Then scroll all the way to the bottom, if xp_cmdshell is there, then skip these 2 steps, otherwise run

sp_configure show_advanced_options, 1
reconfigure with override

Now run the following commands

exec sp_configure xp_cmdshell, 1
reconfigure with override

Now you can use xp_cmdshell in all your scripts


Switch to our mobile site