String manipulation: extracting a part of a string, text replacement, formatting to a given width, etc.
12
votes
4answers
44k views
Splitting string by the first occurrence of a delimiter
I have a string in the next format
id;some text here with possible ; inside
and want to split it to 2 strings by first occurrence of the ;. So, it should be: id and some text here with possible ; ...
11
votes
3answers
600 views
Get all possible combinations of a word in lower/uppercase letters
I want to write a bash script to print all possible lower and upper case permutations of a certain word, e.g. harley:
harley
harleY
harlEy
harLey
...
HARLey
HARLEy
HARLEY
My naive solution is to ...
11
votes
6answers
14k views
How can I test if a variable is empty or contains only spaces?
The following bash syntax verifies if param isn't empty:
[[ ! -z $param ]]
For example:
param=""
[[ ! -z $param ]] && echo "I am not zero"
No output and its fine.
But when param ...
10
votes
5answers
2k views
Pattern matching on path names in bash
I want to act on a list of subdirectories in a directory. Consider:
for x in x86-headers/*/C/populate.sh; do echo $x; done
This gives
x86-headers/elf/C/populate.sh
x86-headers/gl/C/populate.sh
...
9
votes
7answers
6k views
How to check if $PWD is a subdirectory of a given path
E.g. check if $PWD is a subdirectory of /home. In other words I'm searching for a bash string operation to check if one string starts with another.
9
votes
1answer
191 views
When can I edit strings in an executable binary?
I have an executable binary; let's call it a.out. I can see the binary contains strings
$ strings a.out
...
/usr/share/foo
....
I need to change the string /usr/share/foo to /usr/share/bar. Can I ...
8
votes
4answers
39k views
how to concatenate strings in bash?
I need to concatenate 2 strings in bash, so that:
string1=hello
string2=world
mystring=string1+string2
echo mystring should produce
helloworld
8
votes
6answers
23k views
Delete the last character of a string using string manipulation in shell script
I would like to delete the last character of a string, I tried this little script :
#! /bin/sh
t="lkj"
t=${t:-2}
echo $t
but it prints "lkj", what I am doing wrong?
Thank you in advance!
8
votes
4answers
2k views
How do I find the overlap of two strings in bash? [closed]
I have two strings. For the sake of the example they are set like this:
string1="test toast"
string2="test test"
What I want is to find the overlap starting at the beginning of the strings. With ...
8
votes
3answers
11k views
Bash - test for newline?
In various places around the web I've found:
\015
\012
\x0a - hex
\n
\r
all as synonyms for various newlines / carriage returns...
But in this small script I cannot recognise when I come across a ...
7
votes
3answers
1k views
How to remove a specific character in a string but only if there are no numbers in that line in Linux
I've been stumped with this seemingly simple-to-fix problem.. well, for a while.
Here's example output from the file I need to edit:
$cat file
George Washington
Geneva Convention
123,281,029 USD
...
7
votes
7answers
2k views
Bash - Continuous String Manipulation
#!/bin/bash
FILE="$(basename "$1")"
FILE="${FILE/%.jpeg/.jpg}"
Is there anyway to glue these two lines together into a one-liner?
7
votes
1answer
13k views
bash - how to uppercase the command line argument?
I searched SO and found that to uppercase a string following would work
str="Some string"
echo ${str^^}
But I tried to do a similar thing on a command-line argument, which gave me the following ...
7
votes
3answers
4k views
How to defer variable expansion
I was wanting to initialize some strings at the top of my script with variables that have no yet been set, such as:
str1='I went to ${PLACE} and saw ${EVENT}'
str2='If you do ${ACTION} you will ...
6
votes
6answers
16k views
bash - replace space with new line
How can I replace spaces with new lines on an input like:
/path/to/file /path/to/file2 /path/to/file3 /path/to/file4 /path/to/file5 etc...
To obtain the following:
/path/to/file
/path/to/file2
...
6
votes
2answers
4k views
grep surrounding characters of a match
I'm looking to do a find and replace within a giant database dump, and it's not doing what I think should happen. I'd like to grep for my target string in the file, and then see the surrounding 8 ...
6
votes
5answers
423 views
Number of characters in a shell command's output
I am writing a script which needs to calculate the number of characters in a command's output in a single step.
For example, using the command readlink -f /etc/fstab should return 10 because the ...
6
votes
2answers
9k views
Extracting a string, according to a pattern, in a bash script
In bash, suppose that I have a string strname:
strname="ph7go04325r"
I would like to extract the characters between the first "3" character and the last "r" character in strname, saving the result ...
6
votes
2answers
355 views
Piping bash string manipulation
I've read some other piping bash string manipulation questions but they seem to be specialized applications.
Essentially, is there a way to do the below simpler?
instead of
$ string='hello world'; ...
6
votes
6answers
8k views
bash find lines starting with string
I have a bunch of files and I want to find which one contains sequential lines starting with a certain string.
For example for the following file :
Aaaaaaaaaaaa
Baaaaaaaaaaa
Cxxxxxxxxx
Cyyyyyyyyy
...
5
votes
7answers
4k views
How to find a position of a character using grep?
I need to identify the postion of a character in string using grep command.
Example, the string is RAMSITALSKHMAN|1223333.
grep -n '[^a-zA-Z0-9\$\~\%\#\^]'
How do I find the position of | in the ...
5
votes
2answers
2k views
Utility to get binary representation from string?
Is there a simple utility like printf that'll give me a "binary representation", i.e. a string like "01010010", from an input string? It would need to support multi-byte encodings.
5
votes
1answer
210 views
Test -n gives unexpected result
I understand test -n <expression> to return false if the expression evaluates to a string length of greater than 0. Why then does the following happen?
Macbook:~ echo ${#undeclared_variable}
0
...
5
votes
3answers
5k views
Most common encoding for strings in C++ in Linux (and Unix?)
For creating a C++ program that is source code level portable between Windows and Linux and handles internationalization well, there are IMHO three main encodings to consider:
The encoding of the ...
5
votes
6answers
14k views
How to split such a string into array in bash
I have problem with output of a program. I need to launch a command in bash and take its ouput (string) and split it to add new lines in certain places. The string looks like this:
battery.charge: ...
5
votes
6answers
3k views
How to match exact string using `sed`? But not the part of it.?
I have a input file FILE1.TXT as below.
11 id1
12
13 AGE = 20
14 NAME = NAME1
15
16 id2
17
18 AGE = 30
19 NAME = NAME2
.
.
.
110 idXYZ
111
112 AGE = AGEXYZ
113 NAME = ...
5
votes
3answers
15k views
How to get the first word of a string?
When I 'echo *' I get the following output:
file1 file2 file3 ...
What I want is to pick out the first word. How can I proceed?
5
votes
2answers
2k views
Splitting bash command line argument
Is this the best way to split up a colon separated bash command line argument?
#!/bin/bash
hostlist=`echo $1| awk '{split($0,Ip,":")} END{for (var in Ip) print Ip[var];}'`
for host in $hostlist
do
...
5
votes
2answers
2k views
Add thousands separator in a number
In python
re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke )
To split a number by triplets, e.g.:
echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", ...
5
votes
3answers
394 views
Replace multiple strings in a single pass
I'm looking for a way to replace placeholder strings in a template file with concrete values, with common Unix tools (bash, sed, awk, maybe perl). It is important that the replacement is done in a ...
5
votes
3answers
106 views
how do I set quotes around a variable so that the programs sees them as quote marks
I am trying to get quotes around a variable to make is just like I typed it in the terminal
to get this script to work. it shows " quotes around the varibale "
but still does not see it as quotes, as ...
5
votes
2answers
590 views
ls for cut -f string not working
I have a problem with feeding cut output to ls.
This doesn't work:
rep="S1_1000,0000-00-00c,0000-00-00d,0000-00-00e"
ls tab_yeast/{`echo $rep | cut -f2- -d','`}*.tab.gz
ls: cannot access ...
4
votes
4answers
295 views
How do I show the numeric character sequence of a string?
Is there a command either standalone or in vi or similar (can be gui) that will show me the numeric sequence of a string?
Input:
The cat hopped in a box.
Output:
T h e c a t h o p p e d ...
4
votes
5answers
297 views
Replace new line + 4x space to new line in stdout
I need join 2 lines into one in stdout - replace new line AND 4x space with one space but new line without space don't touch
tcpdump -vvv ... -l | xyz
this is output:
2014-06-06 AAA
BBB
...
4
votes
4answers
174 views
Check if content of file has length X and contains only specific characters
Let's say, I have files that contain only one docker id:
myid.id:
28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891
I want to check if the content of my.id is exactly 64 characters ...
4
votes
3answers
4k views
Case-insensitive substring search in a shell script [closed]
I'm trying to create a script which runs a command and compares the output of that command to a certain string to see if it contains that substring, ignoring the case of the string needed to be ...
4
votes
3answers
250 views
Change case of n-th letter in a string
I want to change the case of the n-th letter of a string in BASH (or any other *nix tools, e.g. sed, awk, tr, etc).
I know that you can change the case a whole string using:
${str,,} # to lowercase
...
4
votes
5answers
468 views
Add leading characters infront of string using printf or echo
How can I add leading characters to fill a string to a certain length?
Assume I want to add zeroes infront of a string, if said string is shorter than 20 characters:
printf '%020s\n' "$line"
...
4
votes
4answers
1k views
Replace whole line in a file from command-line
I have a text file which has some contents similar to this:
# General information about the project.
project = u'Py6S'
copyright = u'2012, Robin Wilson'
# The version info for the project you're ...
4
votes
4answers
846 views
extract every nth character from a string
I am trying to figure out a solution for this question. My approach to this problem so far is as below.
Append all the characters together to make it a long string.
After the above step, remove ...
4
votes
1answer
91 views
Length of argument inside a function of an sh script
I have a FreeBSD 9.3 RELEASE server and I am trying to write a shell script using sh.
I am trying to get the length of a variable that is passed to a function in a shell script, like so:
#!/bin/sh
...
4
votes
2answers
654 views
Convert MAC address to Link-local address with bash
How can I convert a Mac address into an ipv6 Link-Local address?
you have to add fe80:: at the start and insert ff:fe in the middle
furthermore all leading zeros must be stripped
4
votes
2answers
188 views
Write variable containing large text with \n to a file with common shell interpreters. How do you do it?
Environment: linux shell or better, ash shell in busybox (example system: Openwrt).
Given a string variable with large text "${a}" constructed in this way:
for index in $(seq 1 40000); do #it is ...
4
votes
2answers
535 views
Replace very long string in files recursively
I have a very long and complex string in many files and I want to remove/replace it recursively. The string contains many slashes, backslashes and spaces and any kind of special signs. How do I do ...
4
votes
2answers
7k views
Bash : compare two strings with space
I am trying to write a bash script which run a command and compare the result with another string.
#!/bin/bash -x
STATUS=`/root/setup_ha show --password-file=/root/password | grep ">HA State" | ...
3
votes
4answers
3k views
How to capture error message from executed command?
I was tasked to create an automated server hardening script and one thing that they need is a report of all the output of each command executed. I want to store the error message inside a string and ...
3
votes
7answers
477 views
get parts of string using shell script
I have one string as
/ip/192.168.0.1/port/8080/
I want to get two separate variables which will contain port and IP
like. 192.168.0.1 and 8080
as I know /ip/ and /port/ will be there always I ...
3
votes
2answers
1k views
grep on a variable
Lets say I have a variable
line="This is where we select from a table."
now I want to grep how many times does select occur in the sentence.
grep -ci "select" $line
I tried that, but it did not ...
3
votes
6answers
4k views
How to reverse a string made of digit in bash?
What is the best way to turn out digits in number?
E.g.
$ echo 123 | hook
321
$ echo 12358 | hook
85321
3
votes
4answers
350 views
Command to remove a portion of JSON data from each line?
I have test.json file with different lengths of rows. Some fictitious example:
{ a: 123, b: sd, c: x45, d: 1, e: '' }
{ a: 5, b: bfgg, c: x4c, d: 31, e: '' }
I want to cut the whole substring after ...