sed 刪除換行符


sed 刪除換行符

sed ':label;N;s/\n/:/;b label' filename
sed ':label;N;s/\n/:/;t label' filename

 

上面的兩條命令可以實現將文件中的所有換行符替換為指定的字串,如命令中的冒號。命令的解釋:

  • :label;  這是一個標簽,用來實現跳轉處理,名字可以隨便取(label),后面的b label就是跳轉指令
  • N;  N是sed的一個處理命令,追加文本流中的下一行到模式空間進行合並處理,因此是換行符可見
  • s/\n/:/;   s是sed的替換命令,將換行符替換為冒號
  • b label  或者 t label    b / t 是sed的跳轉命令,跳轉到指定的標簽處

標簽跳轉和N的追加命令實現了每一行的不間斷放入模式處理空間,從而不會漏掉每一個換行符,而沒有標簽的話跳轉的話,就只能每兩行替換掉一個換行符,對比效果:

echo "a,b,c,d" |sed 's/,/\n/g'|sed ':x;N;s/\n/,/;b x'

echo "a,b,c,d" |sed 's/,/\n/g'|sed 'N;s/\n/,/'

 

 

sed  -n '/Region/p'  source.json | sed 's/^\s*"\w*"://' | sed 's/"},//'|sed 's/"}]//'|sed 's/"//'|sed 'N;s/,\n/\t/'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM