0

输入文件

A B C D;X;Y 0
C D E F;Z;X 1

输出文件

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 应用于每行中的最后一列条目。谢谢

4

3 回答 3

1

将最后一个值附加到倒数第二个值上,然后删除最后一个值:

awk '{$(NF-1) = $(NF-1) ";" $NF; NF--} 1'

或者,将文件视为分号分隔并拆分最后一列

awk 'BEGIN {FS = OFS = ";"} {gsub(/[[:space:]]+/, FS, $NF)} 1'
于 2012-08-11T12:33:23.917 回答
0
awk '{$NF=";"$NF;print}' input_file>output_file
于 2012-08-11T10:51:08.930 回答
0
sed -e 's/ \(.\)$/;\1/' input_file > output_file

或者如果您的最后一列可能有多个字符

sed -e 's/ \([[:alnum:]]*\)$/;\1/' input_file > output_file
于 2012-08-11T11:09:48.677 回答