In this case , it will simply print the line, but if you need to do an operation on the text , just insert your code into the while loop.
When you are spending your day in the terminal , you will find that navigating using only the arrows keys although fine at the the start will frustrate you because it’s quite slow.
Bash come with a lot of keyboard shortcuts design to gain precious time.
CTRL+A # will move the cursour to the beginning of the line
CTRL+E # moves to end of line
CTRL+C # halts the current command and back to prompt
CTRL+D # deletes one character backward or logs out of current session, similar to exit
CTRL+K # deletes all the text forward to the end of the line
CTRL+L # clears screen and redisplay the line
CTRL+R # searches history entering keyword ,
CTRL+T # transposes two characters
CTRL+U # kills backward from point to the beginning of line
CTRL+W # kills the word behind the cursor
i’ve put in bold the shortcuts that i use every day , i don’t use CTRL+A and CTRL+E because the keyboard has keys that are foing the same thing.
In bash , it is common to have to do some action on a numéric serie of files , like deleting or renaming ,
Using brace expansion you will be able to générate a single line that will act on multiple targets ,
For our example , let’s think about a list of ten files
in the simple case where i want to delete the complete list of files, i just have to run de command,
The 10 files will be deleted, but , this is not practical if you want to keep the last file , and delete the other nine,
In that case we can use a usefull tool called brace expansion,
To delete the files 1 to 9 , i just have to run in my bash terminal!
This last one is extremely practical , I use it very often in a lot of different uses cases.
But in other cases , you may want to delete even on odd files , or one every three files,
This is also doable with braces expansions
il you need to run a script unattended and wish to log the output of that script you must already know that you can simply do
the problem with that is you will not log the error messages , only the output messages ,
the error are going to be displayed on the terminal but , not logged
and the error message are often as important as the output message , we do not want to dismiss them from the log ,
the solution to that issue is to run the script using this
With this , both the output will be logged in to the log file.
The issue when you download movies online, is that most of the time the file name is going to be complete trash , filled with useless info like the team that made the rip or the website from where the movie was downloaded.
This is very annoying when you sort by name and the website made the idiotic decision to put their name in front of the actual film name.
for example here a typical movie name
[ Torrent9.info ] Dont.Think.Twice.2016.FRENCH.WEBRip.XviD-NEWCiNE.avi
the actual useful data that i wish to keep is Dont.Think.Twice.2016.avi
for this purpose i’ve developped a small bash script that will list all the files in a chosen directory then , if necessary , will rename the file.
this is not a very efficient script
but it’s fulfill it’s purpose and very rarely encounter a filename that he is unable to clean.
In a bash script you might need to check if a var is even or odd ,
in my case im going to use a if to make that check
You can use this simple code to make that check and display the result.
the result will be :
MySQL is a very convenient way to store data .
To use stored MySQL data in a BASH script you can use this simple command
this will display the result in you terminal without ASCII decorations.
if you need to use that data for something , you can store it in a var
if you have a list of ip to validate ,
you can use this little bash script ,
this will open your IP list ,
then test if all the 4 numbers that make a standard IP.are beeten 0 and 255
if the ip is valid then the script will return valid , else it will return : not valid
after execution , you will get the following result :
In a script you might be interested to keep 2 or more lines after a regex match ,
the line that interest you are not always going to be right after the match ,
the first one might be X lines after the match and the second one Y lines afters the match
in this example , i’m interested in keeping the lines with the price and the number in stock
i’m going to use awk to search for item desc , and display the 4th line after the match, and 6th line.