INPUT_FILE
A B C D;X;Y 0
C D E F;Z;X 1
OUTPUT_FILE
A B C D;X;Y;0
C D E F;Z;X;1
我想将input_file的最后一列与第二列合并,并将最后一列的值与“;”分开在倒数第二列(就像input_file的第4列一样)。因此output_file只有一列。每行没有明显的模式,所以我可以使用grep,但我可以使用“while read line”,但不知道如何在每行的最后一个列条目中应用sed。 感谢
答案 0 :(得分:1)
将最后一个值附加到倒数第二个值,然后删除最后一个值:
awk '{$(NF-1) = $(NF-1) ";" $NF; NF--} 1'
或者,将文件视为分号分隔并拆分最后一列
awk 'BEGIN {FS = OFS = ";"} {gsub(/[[:space:]]+/, FS, $NF)} 1'
答案 1 :(得分:0)
awk '{$NF=";"$NF;print}' input_file>output_file
答案 2 :(得分:0)
sed -e 's/ \(.\)$/;\1/' input_file > output_file
或者您的上一栏可能有多个字符
sed -e 's/ \([[:alnum:]]*\)$/;\1/' input_file > output_file