$'s/\r$//'正規表現は何をしますか?

$'s/\r$//'正規表現は何をしますか?

Todd Schneiderは彼の仕事で次のコマンドを使用しました。ニューヨーク市のタクシーデータ分析PostresSQL用のCSVファイルを準備します。

sed $'s/\r$//' $filename | sed '/^$/d' | ...

2 番目の sed コマンドは空行を削除します。最初は何をしますか?

ベストアンサー1

によるとman bash

  Words of the form $'string' are treated specially.  The word expands to
   string,  with backslash-escaped characters replaced as specified by the
   ANSI C standard.  Backslash escape sequences, if present,  are  decoded
   as follows:                                      
          \a     alert (bell)                       
          \b     backspace                          
          \e                                        
          \E     an escape character                
          \f     form feed                          
          \n     new line                           
          \r     carriage return                    
          \t     horizontal tab                     
          \v     vertical tab                       
          \\     backslash                          
          \'     single quote                       
          \"     double quote                       
          \?     question mark                      
          \nnn   the  eight-bit  character  whose value is the octal value
                 nnn (one to three digits)          
          \xHH   the eight-bit character whose value  is  the  hexadecimal
                 value HH (one or two hex digits)   
          \uHHHH the  Unicode (ISO/IEC 10646) character whose value is the
                 hexadecimal value HHHH (one to four hex digits)
          \UHHHHHHHH                                
                 the Unicode (ISO/IEC 10646) character whose value is  the
                 hexadecimal value HHHHHHHH (one to eight hex digits)
          \cx    a control-x character              
  The  expanded  result  is  single-quoted, as if the dollar sign had not
   been present.

したがって、$'s/\r$//'行の末尾からASCIIを削除してください。CRこれは、Windows行終端をUNIX行終端に変換する粗い方法です。

おすすめ記事