በሚቀጥለው ርዕስ ውስጥ አንዳንድ መንገዶችን እናያለን የመስመር ቁጥሮችን ወደ የጽሑፍ ፋይሎች ያክሉ እኛ እንደምናየው ተርሚናል. እነዚህን የመስመር ቁጥሮች ወደ የእርስዎ ጂኤንዩ / ሊነክስ መደበኛ የጽሑፍ ፋይል ውፅዓት እንዴት እንደሚጨምሩ ከጠየቁ ይህ አጭር ጽሑፍ ይህንን ለማድረግ የተለያዩ መንገዶችን ለማብራራት ይሞክራል ፡፡
ወደ የጽሑፍ ፋይል የመስመር ቁጥሮች ለማከል በርካታ መንገዶች አሉ። በመቀጠል እሱን ለማድረግ 6 የተለያዩ ዘዴዎችን እናያለን ፡፡ ከዚህ በታች ከሚታዩት በተጨማሪ ሌሎች መንገዶችም ይኖራሉ ብዬ አስባለሁ ፣ ግን ለመጀመር እነዚህ በቂ ናቸው ፡፡
ማውጫ
ወደ መደበኛ የጽሑፍ ፋይል ውፅዓት የመስመር ቁጥሮችን ያክሉ
ለመጀመር እኛ የተጠራ ፋይልን እንፈጥራለን ፋይል. txt. በውስጡም ይዘትን ለመስጠት ጥቂት መስመሮችን እጨምራለሁ ፣ እሱም ተለይተው የሚታወቁ። አሁን የፈጠርኩትን ፋይል ይዘት ለማየት ተርሚናሉን (Ctrl + Alt + T) ከፍተን በውስጡ እንጽፋለን ፡፡
cat archivo.txt
የ nl ትዕዛዙን በመጠቀም
ከድመት ትእዛዝ ውፅዓት እንደሚታየው ፋይሉ 10 መስመሮችን ይ ,ል ፣ ሦስቱም ባዶዎች ናቸው ፡፡ እኛ በመጠቀም የመስመር ቁጥሮችን እንጨምራለን nl ትዕዛዝ. ይህንን ለማድረግ ሩጫ
nl archivo.txt
በቀድሞው መያዝ ላይ እንደታየው እ.ኤ.አ. የ nl ትዕዛዝ ባዶ መስመሮችን ችላ ይላል. ቁጥሮቹን ባዶ ባልሆኑ መስመሮች ላይ ብቻ ያክሉ። ብትፈልግ ሁሉንም መስመሮች ቁጥርባዶ መስመሮችን ጨምሮ ፣ ሩጫ
nl -b a archivo.txt
በተጨማሪም ፣ ውጤቱን ስናነብ ለበለጠ ግልጽነት ፣ እንችላለን ከቁጥሮች በኋላ ምልክት ያክሉ. ለምሳሌ ፣ ከቁጥሮች በኋላ አንድ ጊዜ ለመጨመር ሩጫ
nl -s "." archivo.txt
ትመኝ ይሆናል የውፅዓት ወርድ አሰልፍ. ይህንን ለማድረግ የ -w አማራጭ ከተለዋጭ እሴት ጋር በሚከተለው ውስጥ እንደሚታየው
nl -w3 archivo.txt
የድመት ትዕዛዙን በመጠቀም
በዚህ ጽሑፍ የመጀመሪያ ቅጽበታዊ ገጽ እይታ ላይ እንደሚታየው የድመት ትዕዛዝ የፋይሉን ይዘት ለማሳየት ጥቅም ላይ ይውላል ፡፡ በፋይሉ ውፅዓት ላይ ቁጥሮችን ማከል ከፈለጉ ፣ ይጠቀሙ -n በሚከተለው ውስጥ እንደሚታየው
cat -n archivo.txt
ፍላጎት ሊኖርዎት ይችላል መደበኛ ውጤትን ወደ አዲስ ፋይል ያስተላልፉ. ይህንን ለማድረግ ከዚህ በታች እንደሚታየው ትዕዛዙን ማስኬድ አለብዎት
cat -n archivo.txt > nuevoarchivo.txt
የአውክ ትዕዛዙን በመጠቀም
ይህ ምናልባት ለተገኘው ውጤት በጣም የተወሳሰበ ዘዴ ነው ፡፡ መጨመር የአውክ ትዕዛዞችን በመጠቀም ውጤትን ለማስገባት የመስመር ቁጥሮች፣ ሩጫ
awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt
እንዳየኸው እኔ ተመደብኩ የመነሻ ቁጥር በ 1 በ BEGIN ልኬት ውስጥ. ከዚህ በታች እንደሚታየው ማንኛውንም የመረጡትን የመጀመሪያ ቁጥር ለምሳሌ 5 መምረጥ እንችላለን ፡፡
awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt
የሚከተለውን ትዕዛዝ ይጠቀሙ ባዶ መስመሮችን ከግምት ውስጥ ማስገባት ካልፈለጉ:
awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' archivo.txt
ከላይ የተጠቀሱትን ትዕዛዞች ለማስታወስ ትንሽ አስቸጋሪ ነው ብለው የሚያስቡ ከሆነ የሚከተለውን ትዕዛዝ ይጠቀሙ ፣ ይህም በ ‹AWK› ትዕዛዙ እንደሚታየው ከመጀመሪያው ጋር ተመሳሳይ ውጤት ያስገኝልዎታል-
awk '{ print FNR " " $0 }' archivo.txt
የ sed ትእዛዝን በመጠቀም
ለማከል የ “sed” ትዕዛዙን በመጠቀም የመስመር ፋይልን ወደ መደበኛ ፋይል ውጤት፣ ሩጫ
sed '/./=' archivo.txt | sed '/./N; s/\n/ /'
የሰደቡ ትዕዛዝ ለመጥቀስ አሪፍ ባህሪ አለው። ይችላል ከፋይል አንድ የተወሰነ መስመር ያሳዩ. ለምሳሌ ፣ የፋይላችን ሰባተኛ መስመርን ለማሳየት ሩጫ
sed -n 7p archivo.txt
አነስተኛውን ትዕዛዝ በመጠቀም
ምዕራፍ ቁጥሩን በመጠቀም የፋይሉን መደበኛ ውጤት ቁጥሩን ያያይዙ፣ ሩጫ
less -N archivo.txt
የግሬፕ ትዕዛዙን በመጠቀም
የግሬፕ ትዕዛዝ የተወሰነ ጽሑፍ የያዘ መስመር ለመፈለግ ሊያገለግል ይችላል ፡፡ ከፈለጉ የተፈለገውን ጽሑፍ በያዙት መስመሮች ላይ የመስመር ቁጥሮችን ያክሉ፣ ሩጫ
grep -n "línea" archivo.txt
ይህ ትዕዛዝ የፍለጋውን ገመድ በያዙት መስመሮች ላይ ቁጥሮቹን ብቻ እንደሚያክል ያስታውሱ ፡፡ እንዲሁም በቅጽበታዊ ገጽ እይታው ላይ እንደሚታየው የተፈለገውን ጽሑፍ ቀለም ይሰጠዋል ፡፡ በተጠቀሰው ፋይል ውስጥ ያሉት ሁሉም ነገሮች ይዘለላሉ።
እና ያ ነው ፣ እኔ እንኳን እኔ እንደዚያ ማለት አለብኝ እነዚህ ትዕዛዞች ሊሟሉ ወይም ሊራዘሙ የሚችሉ ሌሎች አማራጮች አሏቸው እነ articleህ በዚህ ጽሑፍ ውስጥ ተብራርተዋል ፡፡ እዚህ ስለ ተሰየሙት ትዕዛዞች የበለጠ መረጃ ለማግኘት ፣ ማማከር ይችላሉ ሰው ገጾች.
3 አስተያየቶች ፣ ያንተን ተወው
በአውክ ትዕዛዞች ውስጥ መደበኛ መግለጫዎችን “/.*/” መፈለግ አያስፈልግም
በነባሪ ቀድሞውኑ ፋይሉን ወደ መስመሮች ይከፍላል እና $ 0 መስመሩን ይይዛል ፣ ስለዚህ
awk 'BEGIN {i = 1} {printf "% 03d:% s \ n", i, $ 0; i ++} 'file.txt
ከሚሰራው ተመሳሳይ (እና የተሻለ) ይሠራል
awk 'BEGIN {i = 1} /.*/=printf "% d.% s \ n", i, $ 0; i ++} 'file.txt
በጣም ጥሩ አስተዋጽኦ! በጣም አመሰግናለሁ!
ወዳጃዊ ሰላምታ ከመጀመርዎ በፊት.
ከሚከተለው ስክሪፕት ጋር አንድ ጉዳይ እዚህ አለ ፡፡
ከፍለጋ ጋር በሚዛመዱ መስመሮች ላይ መረጃ ከአንድ ፋይል ተገኝቶ በተለዋጭ ውስጥ ይቀመጣል።
ለምሳሌ:
values = "awk -F«: »'{አትም $ 1» »$ 2» »$ 3}' hociporky | grep "201025" -n`
ከዚያ በተለዋጩ በኩል ይመዝናሉ ከዚያም በፋይሉ ውስጥ አንድ የተወሰነ መስመር ይፈልጉ።
ለምሳሌ:
ዋጋ በ $ ዋጋዎች; መ ስ ራ ት
sed -n "$ {value} p" ፋይል
ስለዚህ
ግን ይህ ስህተት ይልካል
sed: -e አገላለጽ # 1 ፣ ቻር 1: ያልታወቀ ትእዛዝ:
አንድ ሰው ለምን እና እንዴት ሊፈታ ይችላል ብሎ ሊያስረዳኝ ይችላል?