1

私はこの価値を持っています

option 'staticip' '5.5.5.1'

5.5.5.1引用符なしでのみ印刷したい。私は使用しています

cat /etc/filename | grep staticip | awk '{print $3}'

しかし、結果は'5.5.5.1'

4

5 に答える 5

12

trまたは、問題のある文字を削除するために使用できます。

cat /etc/filename | grep staticip | awk '{print $3}' | tr -d \'
于 2013-02-01T06:43:11.083 に答える
1

awkのgsub()関数を使用して、引用符をゼロに変更できます。

awk '{gsub(/'"'"'/, "", $3); print $3}'

これは本当にgsub(/'/, "", $3)です。醜さは、引用符を一緒に接着する必要性から来ています。

于 2013-02-01T06:42:01.810 に答える
1
awk '$2=="staticip" && $0=$4' FS="'"

結果

5.5.5.1
于 2013-02-01T06:42:17.333 に答える
0

awks substr関数を使用するか、それをcutコマンドにパイプすることができます。awksubstrのmanページをお読みください。

于 2013-02-01T06:42:34.000 に答える
0

'をawk出力から削除するには、次を使用できます。 sed "s/^'//;s/'$//" このコマンドは、出力行の最初と最後でのみ'を削除し、awkを使用するほど重くなく、trを使用する場合はそれほど一般的ではありません。awkはメモリ内で非常に大きく、trは常に意図されているとは限らないものをすべて出力から削除します。

于 2021-01-16T12:45:19.603 に答える