我有以下格式的数据。
desc : ABC 1234567 MNOPQRS 2 AB 0987654
我需要格式
的数据desc : ABC 1234567 MNOPQRS 2 AB 0987654
我尝试使用awk,但它将其更改为错误的格式,基本上也删除了两者之间的空间。
awk '$1=$1' sample.txt
desc : ABC 1234567 MNOPQRS 2 AB 0987654
我也试过使用不同的awk,但它也没有达到目的。这也增加了输出空间。
awk 'BEGIN{FS=OFS=":"}{gsub(/^[ \t]+/,"",$2);gsub(/[ \t]+$/,"",$1)}1' sample.txt
desc:ABC 1234567 MNOPQRS 2 AB 0987654
有人可以在我出错的地方帮助我。 desc和冒号之间的空格数可能会改变,因此我不想对空格删除进行硬编码。
问候。
答案 0 :(得分:3)
我建议使用GNU sed:
sed 's/ *: */ : /' file
输出:
desc : ABC 1234567 MNOPQRS 2 AB 0987654
答案 1 :(得分:0)
如果您的Input_file与您显示的示例相同,那么遵循awk
解决方案也可以帮助您。
awk '{sub(/ +: +/," : ")} 1' Input_file
输出如下。
desc : ABC 1234567 MNOPQRS 2 AB 0987654