Linux Ask!

Linux Ask! is a Q & A web site specific for Linux related questions. Questions are collected, answered and audited by experienced Linux users.

Linux Ask!

Split on specific characters on Bash Script's for loop

Answer:

If you want to Bash script's for loop to split on non white-space characters, you can change the IFS, e.g.

#!/bin/bash
IFS='-'

list="a-b-c-d-e"

for c in $list; do
    echo $c
done

The above script will split on the character '-'

E.g.

# ./test.sh

a
b
c
d
e

Sending email using raw SMTP commands

Answer:

You can send email(s) by connecting to your SMTP server, and using raw SMTP commands.

E.g. assume your SMTP is localhost, listening port 25, enter the commands in bold

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix (Ubuntu)
helo localhost
250 smtp.example.com
mail from: john@example.com
250 2.1.0 Ok
rcpt to: mary@example.com
250 2.1.5 Ok
data
354 End data with .
This is a test mail
.

250 2.0.0 Ok: queued as BA2FD1DB96
quit
221 2.0.0 Bye
Connection closed by foreign host.

Remove un-staged files or directories from Git repository

Answer:

To remove newly added files or directories under a Git repository (but un-staged yet), do:

# git clean -fdn

Check if the files/directories are really okay to remove. Then, execute the command again without the '-n'

# git clean -fd

Move cursor to the end of line in VIM

Answer:

To move to the end of a line in VIM, type

$

You can also type "A" to append at end of the line.

Convert all text in a file from upper-case to lower-case

Answer:

Just one command needed:

# tr '[:upper:]' '[:lower:]' < input.txt