Sunday, June 21, 2009

To upper case every char after space

awk '{ for ( i=1; i <= NF; i++)
{ sub(".", substr(toupper($i),1,1) , $i) }
print }' infile

How can you convert a text file to all lower case or all upper case?

As usual, in Linux, there are more than 1 way to accomplish a task.

To convert a file (input.txt) to all lower case (output.txt), choose any ONE of the following:


* dd

$ dd if=input.txt of=output.txt conv=lcase


* tr

$ tr '[:upper:]' '[:lower:]' < input.txt > output.txt


* awk

$ awk '{ print tolower($0) }' input.txt > output.txt


* perl

$ perl -pe '$_= lc($_)' input.txt > output.txt


* sed

$ sed -e 's/\(.*\)/\L\1/' input.txt > output.txt


We use the backreference \1 to refer to the entire line and the \L to convert to lower case.



To convert a file (input.txt) to all upper case (output.txt):


* dd

$ dd if=input.txt of=output.txt conv=ucase


* tr

$ tr '[:lower:]' '[:upper:]' < input.txt > output.txt


* awk

$ awk '{ print toupper($0) }' input.txt > output.txt


* perl

$ perl -pe '$_= uc($_)' input.txt > output.txt


* sed

$ sed -e 's/\(.*\)/\U\1/' input.txt > output.txt

reference from
http://linuxcommando.blogspot.com/2008/05/how-to-convert-text-files-to-all-upper.html

Read line from file shell script

while read myline
do
echo $myline
done < myfile

oring grep command

$ grep 'apples\|oranges' fruits.txt
green apples
red oranges
red apples

Colorfull grep search

export GREP_OPTIONS='--color=auto'

Monday, May 18, 2009

copy cpp files from diresctory to destination maintaining directory structure

find . -iname *.cpp | cpio -pudvm /destination

Change bash appearance

BLUE=`tput setf 1`
GREEN=`tput setf 2`
CYAN=`tput setf 3`
RED=`tput setf 4`
MAGENTA=`tput setf 5`
YELLOW=`tput setf 6`
WHITE=`tput setf 7`


PS1='\[\[$RED\]\u@:\w # \[$CYAN\]'



\a an ASCII bell character (07)
\d the date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format} the format is passed to strftime(3) and the result
is inserted into the prompt string an empty format
results in a locale-specific time representation.
The braces are required
\e an ASCII escape character (033)
\h the hostname up to the first `.'
\H the hostname
\j the number of jobs currently managed by the shell
\l the basename of the shell's terminal device name
\n newline
\r carriage return
\s the name of the shell, the basename of $0 (the portion following
the final slash)
\t the current time in 24-hour HH:MM:SS format
\T the current time in 12-hour HH:MM:SS format
\@ the current time in 12-hour am/pm format
\A the current time in 24-hour HH:MM format
\u the username of the current user
\v the version of bash (e.g., 2.00)
\V the release of bash, version + patch level (e.g., 2.00.0)
\w the current working directory, with $HOME abbreviated with a tilde
\W the basename of the current working directory, with $HOME
abbreviated with a tilde
\! the history number of this command
\# the command number of this command
\$ if the effective UID is 0, a #, otherwise a $
\nnn the character corresponding to the octal number nnn
\\ a backslash
\[ begin a sequence of non-printing characters, which could be used
to embed a terminal control sequence into the prompt
\] end a sequence of non-printing characters

Clears Firefox` cache without clicking around

rm_cache() { rm -f $HOME/.mozilla/firefox//Cache/* }; alias rmcache='rm_cache'

Encrypted Tarballs

tar -cf - folder/ | gpg -c > folder.tpg

gpg < folder.tpg | tar -xf -

change mac address

ifconfig eth0 hw ether 00:11:22:33:44:55


changes are valid until system is rebooted.

change file extension of all files in a dir of a certain type to another type

for f in *.jpg; do mv "$f" "${f%.jpg}.bmp"; done

Make a directory named with the current date

mkdir `date --iso`

yank argument from previous command

alt + 3 .
yank 3rd argument from previous command

write function for bash

function anyfunction() { ls && cd /home; }

List all system users

$~

List top ten files/directories sorted by size

du -sb *|sort -nr|head|awk '{print $2}'|xargs du -sh

for full list

du -s *|sort -nr|cut -f2|xargs du -sh

Thursday, April 9, 2009

change default shell in linux

chsh command

linux login/logout profiles

Login Scripts

Behind the scenes, when you login, the following shell scripts are executed. They are used to set environment variables and system settings.

/etc/profile

  • This is the first script that is executed.
  • This script is used to set global parameters that are common to all users.

/home//.profile

  • This is the next script that is normally executed.
  • Most likely the contents of this file will be the same for all users.
  • It can be changed to set unique parameters for each user.

/home//.bashrc

  • This is the next script that is run and/or each time you start a new shell.


Sed Command

Keeping lines containing certain words with the sed command

sed -i -e '/firefox/!d' TheEntireIntarwebs.html

sed // The program
-i // tells sed to write the results back to the source file
-e // tells sed to interpret the next argument as a regular

Friday, March 20, 2009

Bash Commands

Ctrl + xx Move between EOL and current cursor position

Ctrl-a Move to the start of the line.
Ctrl-e Move to the end of the line.

Ctrl-b Move back one character.
Ctrl-f Move forward one character.

Alt-b Move back one word.
Alt-f Move forward one word.

Alt-] x Where x is any character, moves the cursor forward to the next occurance of x.
Alt-Ctrl-] x Where x is any character, moves the cursor backwards to the previous occurance of x.

Ctrl-u Erase the current line.
Ctrl-k Delete from the cursor to the end of the line.
Ctrl-w Delete from the cursor to the start of the word.
Esc-Del Delete previous word (may not work, instead try Esc followed by Backspace)
Alt + d Delete word

Ctrl-y Pastes text from the clipboard.
Ctrl-l Clear the screen leaving the current line at the top of the screen.

Ctrl-x Ctrl-u Undo the last changes. Ctrl-_ does the same
Alt-r Undo all changes to the line.
Ctrl-d Delete from under the cursor
Ctrl-r Search the history backwards
Ctrl-R Search the history backwards with multi occurrence
Ctrl-xx Move between EOL and current cursor position
Ctrl-x @ Show possible hostname completions

Alt-< Move to the first line in the history
Alt-> Move to the last line in the history
Alt-? Show current completion list
Alt-* Insert all possible completions
Alt-/ Attempt to complete filename
Alt-. Yank last argument to previous command
Alt-back-space Delete backward from cursor

2T = TAB twice
/2T Entire directory structure including Hidden one
*2T Only Sub Dirs inside without Hidden one

Alt-n Search the history forwards non-incremental
Alt-p Search the history backwards non-incremental

Alt-t Move words around
Alt-u Make word uppercase
Alt-l Make word lowercase
Alt-c Capitalize the word

Monday, March 16, 2009

Rpm commands

rpm -Uvh packages(s).rpm install/upgrade package file(s)
rpm -e package remove package
rpm -qa '*spell*' show all packages whose names contain the word spell
rpm -q package show version of package installed
rpm -q -i package show all package metadata
rpm -q -i -p package.rpm show all package file's metadata
rpm -q -f /path/file what package does file belong
rpm -q -l package list where files were installed
rpm -q -l -p package.rpm list where files would be installed
rpm2cpio package.rpm | cpio -id extract package files to current directory
rpm -q --requires package list files/packages that package needs
rpm -q --whatrequires package list packages that need package (see also whatrequires)

Monday, March 2, 2009

Format USB Disk On Linux

Get the /dev mount point of the USB disk,
list file system using mkfs command, and then write desired filesystem command

let us select mkfs.vfat

then apply command
#sudo mkfs.vfat /dev/sda1
give label to USB disk using
#sudo e2label /dev/sda1 jaimin-usb-disk

Thursday, January 29, 2009

Tar Extract a Single File(s) From a Large Tarball

We have a directory named directory1
file listing of directory is like this
--------------------------------------------------------------
directory1/
directory1/directory2
directory1/directory2/directory3
directory1/directory2/directory3/directory4
directory1/directory2/directory3/directory4/file4.file
directory1/directory2/directory3/file3.file
directory1/directory2/directory3/extract.this.file
directory1/directory2/file2.file
directory1/directory2/extract.this.file.also
directory1/file1.file
--------------------------------------------------------------

tar -cvzf directory1.archive.tgz directory1/

now we have tgz file directory1.archive.tgz

now give following command

--------------------------------------------------------------
tar -xvf directory1.archive.tgz --wildcards --no-anchored directory1/directory2/directory3/extract.this.file directory1/directory2/extract.this.file.also
--------------------------------------------------------------

Now?
go ahead you have
directory1/directory2/directory3/extract.this.file
directory1/directory2/extract.this.file.also
to use. have fun