Awk 使用sed删除最后一个字符串和冒号之间的所有空格,只有一个空格
我有以下格式的数据Awk 使用sed删除最后一个字符串和冒号之间的所有空格,只有一个空格,awk,sed,Awk,Sed,我有以下格式的数据 pid : BP itmi : 40 stsus : NO ltm : Ha Pr 我试图删除除最后一个字符和冒号之间的空格外的所有空格 pid : BP itmi : 40 stsus : NO ltm : Ha Pr 现在,如果我试图使用sed删除空间,它将删除
pid : BP
itmi : 40
stsus : NO
ltm : Ha Pr
我试图删除除最后一个字符和冒号之间的空格外的所有空格
pid : BP
itmi : 40
stsus : NO
ltm : Ha Pr
现在,如果我试图使用sed删除空间,它将删除所有空间,而不考虑位置
有任何相同的帮助。您可以尝试
<infile tr -s '[[:blank:]]'
您可以试试
<infile tr -s '[[:blank:]]'
带有sed
$ sed -E 's/ +/ /g' file
pid : BP
itmi : 40
stsus : NO
ltm : Ha Pr
不过,使用tr
可能会更好。使用sed
$ sed -E 's/ +/ /g' file
pid : BP
itmi : 40
stsus : NO
ltm : Ha Pr
不过,您最好使用tr
。这个简短的awk单行程序应该适用于您的示例:
awk '$1=$1' file
测试:
此短awk单衬套适用于您的示例:
awk '$1=$1' file
测试:
假设标题“删除所有空格,但最后一个字符串和冒号之间只有一个空格”是实际任务(而不是示例输出和消息正文中显示的内容,它在:
前面留有空格),请尝试此sed
代码:
sed 's/ *//' datafile
输出:
pid: BP
itmi: 40
stsus: NO
ltm: Ha Pr
假设标题“删除所有空格,但最后一个字符串和冒号之间只有一个空格”是实际任务(而不是示例输出和消息正文中显示的内容,它在:
前面留有空格),请尝试此sed
代码:
sed 's/ *//' datafile
输出:
pid: BP
itmi: 40
stsus: NO
ltm: Ha Pr
:
后面的空格是单独留下的,因此Ha Pr
不会变成HaPr
“除一之外的所有”都会在冒号前面留下一个空格。@glennjackman,Re“before”:它可能是“after”,因为介词“between”(不像说“from”)没有指定顺序。:
后面的空格是单独留下的,因此,Ha Pr
不会变成HaPr
“除一之外的所有”都会在冒号前留下一个空格。@glennjackman,Re“before”:它可能是“after”,因为介词“between”(不像说“from”)没有指定顺序。标题意味着第1行应该变成pid:BP
。(“BP”是该行的最后一个字符串。)哪一个是正确的:标题还是消息正文?因此您希望在每行的开头添加一个空格,就像在发布的输出中一样,对吗?标题意味着第1行应该变成pid:BP
。(“BP”是该行上的最后一个字符串。)哪一个是正确的:标题还是消息正文?因此您希望在每行的开头添加一个空格,就像在发布的输出中一样,对吗?这总是会截断固定的空格。。我正在尝试删除最后一个字符串和冒号之间的所有空格,但最后一个字符串和冒号之间的空格除外。此操作始终截断固定空格。。我试图删除最后一个字符串和冒号之间的所有空格,但最后一个空格中的一个除外