what does this command do sed 's/~/ /g'?
Clash Royale CLAN TAG#URR8PPP
up vote
-3
down vote
favorite
I am passing a set of 6 arguments initially to a script.
Script.sh a b c d e f
One of the commands in the script which is managing the arguments;
comm=$(echo $1 |sed 's/~/ /g')
linux sed
add a comment |
up vote
-3
down vote
favorite
I am passing a set of 6 arguments initially to a script.
Script.sh a b c d e f
One of the commands in the script which is managing the arguments;
comm=$(echo $1 |sed 's/~/ /g')
linux sed
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text ofsed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info
– RoVo
Nov 28 at 13:28
add a comment |
up vote
-3
down vote
favorite
up vote
-3
down vote
favorite
I am passing a set of 6 arguments initially to a script.
Script.sh a b c d e f
One of the commands in the script which is managing the arguments;
comm=$(echo $1 |sed 's/~/ /g')
linux sed
I am passing a set of 6 arguments initially to a script.
Script.sh a b c d e f
One of the commands in the script which is managing the arguments;
comm=$(echo $1 |sed 's/~/ /g')
linux sed
linux sed
edited Nov 28 at 13:42
Kusalananda
118k16223364
118k16223364
asked Nov 28 at 13:14
Diganto Paul
315
315
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text ofsed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info
– RoVo
Nov 28 at 13:28
add a comment |
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text ofsed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info
– RoVo
Nov 28 at 13:28
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text of
sed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info– RoVo
Nov 28 at 13:28
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text of
sed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info– RoVo
Nov 28 at 13:28
add a comment |
1 Answer
1
active
oldest
votes
up vote
4
down vote
The sed
expression s/~/ /g
replaces every tilde with a space character. It means, literally, "substitute everything that matches the regular expression ~
with a space, globally (on the whole input line)". The expression could in this case also have been written as y/~/ /
, and the whole sed
command could be replaced by the faster tr '~' ' '
.
In bash
, this is more efficiently done with
comm=$1//~/
The ~
has to be escaped here to not be expanded to the pathname of the current user's home directory.
In any case, the $1
needs to be double quoted if you are using it with echo
(unless you want the tilde to be interpreted as someone's home directory, and other shell globs to be expanded to filenames), and ideally, the command would be written with printf
(this avoids an initial dash in $1
from being interpreted as the start of some option to echo
):
comm=$( printf '%sn' "$1" | tr '~' ' ' )
Related:
- Why is printf better than echo?
- Why does my shell script choke on whitespace or other special characters?
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
The sed
expression s/~/ /g
replaces every tilde with a space character. It means, literally, "substitute everything that matches the regular expression ~
with a space, globally (on the whole input line)". The expression could in this case also have been written as y/~/ /
, and the whole sed
command could be replaced by the faster tr '~' ' '
.
In bash
, this is more efficiently done with
comm=$1//~/
The ~
has to be escaped here to not be expanded to the pathname of the current user's home directory.
In any case, the $1
needs to be double quoted if you are using it with echo
(unless you want the tilde to be interpreted as someone's home directory, and other shell globs to be expanded to filenames), and ideally, the command would be written with printf
(this avoids an initial dash in $1
from being interpreted as the start of some option to echo
):
comm=$( printf '%sn' "$1" | tr '~' ' ' )
Related:
- Why is printf better than echo?
- Why does my shell script choke on whitespace or other special characters?
add a comment |
up vote
4
down vote
The sed
expression s/~/ /g
replaces every tilde with a space character. It means, literally, "substitute everything that matches the regular expression ~
with a space, globally (on the whole input line)". The expression could in this case also have been written as y/~/ /
, and the whole sed
command could be replaced by the faster tr '~' ' '
.
In bash
, this is more efficiently done with
comm=$1//~/
The ~
has to be escaped here to not be expanded to the pathname of the current user's home directory.
In any case, the $1
needs to be double quoted if you are using it with echo
(unless you want the tilde to be interpreted as someone's home directory, and other shell globs to be expanded to filenames), and ideally, the command would be written with printf
(this avoids an initial dash in $1
from being interpreted as the start of some option to echo
):
comm=$( printf '%sn' "$1" | tr '~' ' ' )
Related:
- Why is printf better than echo?
- Why does my shell script choke on whitespace or other special characters?
add a comment |
up vote
4
down vote
up vote
4
down vote
The sed
expression s/~/ /g
replaces every tilde with a space character. It means, literally, "substitute everything that matches the regular expression ~
with a space, globally (on the whole input line)". The expression could in this case also have been written as y/~/ /
, and the whole sed
command could be replaced by the faster tr '~' ' '
.
In bash
, this is more efficiently done with
comm=$1//~/
The ~
has to be escaped here to not be expanded to the pathname of the current user's home directory.
In any case, the $1
needs to be double quoted if you are using it with echo
(unless you want the tilde to be interpreted as someone's home directory, and other shell globs to be expanded to filenames), and ideally, the command would be written with printf
(this avoids an initial dash in $1
from being interpreted as the start of some option to echo
):
comm=$( printf '%sn' "$1" | tr '~' ' ' )
Related:
- Why is printf better than echo?
- Why does my shell script choke on whitespace or other special characters?
The sed
expression s/~/ /g
replaces every tilde with a space character. It means, literally, "substitute everything that matches the regular expression ~
with a space, globally (on the whole input line)". The expression could in this case also have been written as y/~/ /
, and the whole sed
command could be replaced by the faster tr '~' ' '
.
In bash
, this is more efficiently done with
comm=$1//~/
The ~
has to be escaped here to not be expanded to the pathname of the current user's home directory.
In any case, the $1
needs to be double quoted if you are using it with echo
(unless you want the tilde to be interpreted as someone's home directory, and other shell globs to be expanded to filenames), and ideally, the command would be written with printf
(this avoids an initial dash in $1
from being interpreted as the start of some option to echo
):
comm=$( printf '%sn' "$1" | tr '~' ' ' )
Related:
- Why is printf better than echo?
- Why does my shell script choke on whitespace or other special characters?
edited Nov 28 at 13:40
answered Nov 28 at 13:27
Kusalananda
118k16223364
118k16223364
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f484659%2fwhat-does-this-command-do-sed-s-g%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Imho, some at least basic research should be done before asking questions. You can find the answer in the info text of
sed
tag which has been used in this question. unix.stackexchange.com/tags/sed/info– RoVo
Nov 28 at 13:28