Print all Fields with AWK separated by OFS

前端 未结 2 623
后悔当初
后悔当初 2020-12-14 01:20

Is there a way to print all records separated by the OFS without typing out each column number.

#Desired style of syntax, undesired result
[kbrandt@glade: ~         


        
相关标签:
2条回答
  • 2020-12-14 01:42

    Sed equivalent:

    $ echo "1 2 3 4" | sed 's/ /:-)/g'
    

    Here's another option with awk:

    $ echo "1 2 3 4" | awk '{ gsub(/\s/, ":-)")}1' 
    
    0 讨论(0)
  • 2020-12-14 01:51

    This is a variation on the first style:

    echo "1 2 3 4" | gawk 'BEGIN { OFS=" :-( "}; {$1=$1; print $0}'
    

    Results:

    1 :-( 2 :-( 3 :-( 4
    

    Explanation:

    the $1=$1 is to rebuild the record, using the current OFS (you can also see http://www.gnu.org/software/gawk/manual/gawk.html#Changing-Fields)

    Update:

    (suggested by @EdMorton and @steve) This is a briefer, equivalent version of the awk command, that sets OFS in the command line, and takes advantage of print $0 as the default action:

    awk -v OFS=" :-( " '{$1=$1}1'
    
    0 讨论(0)
提交回复
热议问题