Linuxシェルスクリプトから文字列の特定の文字を削除する[閉じる]

Linuxシェルスクリプトから文字列の特定の文字を削除する[閉じる]

文字列から数字a:と2を削除する必要があります。"

"9.cgadjka.jsjdaj:12345"

私だけが必要

9.cgadjka.jsjdaj

Linux端末でスクリプトを書くのは今回が初めてなので、今はこれについてよくわかりません。

答え1

使用sed

$ echo '"9.cgadjka.jsjdaj:12345"' | sed 's/:.*\|"//g'
9.cgadjka.jsjdaj

一致:とそれに続くすべての文字を一致または"削除します。

答え2

GNUを使用すると、grep次のことができます。

$ echo '"9.cgadjka.jsjdaj:12345"' | grep -Po '(?<=").*(?=:)'
9.cgadjka.jsjdaj

答え3

コメントで解決策を見ることができますsed。次のコマンドを使用してこれらのシンボルを削除することもできますawk

echo "9.cgadjka.jsjdaj:12345" |awk -F: '{print $1}'

二重引用符が文字列の一部である場合は、次を使用する必要があります。

STRING='"9.cgadjka.jsjdaj:12345"'
echo $STRING |awk -F'[":]' '{print $2}'

STRING二重引用符()を含む文字列を含みます。"

関連情報