So erhalten Sie den Inhalt einer Zeile anhand ihrer Nummer in der Shell

354
Derek nichols

Ich muss den Inhalt einer Zeile anhand der Nummer ermitteln, die ich von grep gehört habe, und das gesamte Forum recherchiert, aber kein Glück. Was ist der Befehl? ZB gebe ich eine cmd wie 'viewlinecontent Leinenummer file.php' ein und erhalte den Inhalt der Zeile.

0

1 Antwort auf die Frage

0
glenn jackman

sed funktioniert hier gut:

linenumber=42 # or whatever sed -n "$p" file 

verwenden -n, um das Drucken jeder Zeile zu verhindern .
$gibt den "Adressbereich" (eine einzelne Zeile) an und
pdruckt diese Zeile.

sed Handbuch online


Wenn Sie Ihre spezifische Syntax wünschen, erstellen Sie eine Shell-Funktion:

viewlinecontent() { sed -n "$p" "$2" } viewlinecontent 42 file.php 
Eines Tages muss ich mich mit Sed ... Frank Thomas vor 6 Jahren 0
sed hat kryptische Ein-Zeichen-Befehle, keine Variablen, keine Arithmetik usw. Die meisten Dinge lassen sich in awk oder perl lesbarer / wartbarer ausführen. Ich verwende sed nur für sehr kurze Filter: `sed q` ==` head -1`; `sed -n '$ p'` ==` Schwanz -1`; `sed 's / search / replace / g'; `sed -i 's / \ r $ //'` == `dos2unix` glenn jackman vor 6 Jahren 0