2017-04-21 11 views
0

Ich möchte einige Zeichen, die am Anfang einer Zeile sein können, mit awk entfernen. Die Charaktere würde Ich mag entfernen @ und/oder =entferne bestimmte Zeichen am Anfang einer Zeile mit awk

Hier wird eine Datei Beispiel:

@word <= Remove @ 
=word <= Remove = 
@=word <= Remove @ AND = 
[email protected] <= Remove = AND @ 

Im Moment benutze ich sub(/^\@/, "", $0)@ am Anfang einer Zeile zu entfernen. Wie kann ich diese Zeile so bearbeiten, dass sie @, = und beide entfernt, wenn sie zusammen vorhanden sind?

Antwort

1

In awk:

$ awk 'gsub(/^[[email protected]]+/,"")||1' file 
word <= Remove @ 
word <= Remove = 
word <= Remove @ AND = 
word <= Remove = AND @ 

Erklärt:

awk ' 
gsub(/^[[email protected]]+/,"") || 1 # replace all leading =s and @s with "" and print nevertheless 
' file 
2

Mit awk:

awk '{sub(/^[@=]+/, "")}1' File 

Mit sed:

sed -r 's/^[@=]+//' File 
Verwandte Themen