如果列尾尚不存在,则需要将其替换为字符

如果列尾尚不存在,则需要将其替换为字符

我正在尝试使用awk,但可以使用其他任何可行的东西

假设我有一个包含这些行的文件

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl ekljekfjl 8438477

但我希望所有行都以这样的正斜杠结尾

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477

我该怎么做呢?

我尝试了这个但得到了不好的结果

awk '{sub(/.$/, "/", $2)} 1'

但得到了这个

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjio/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehf/ ekljekfjl 8438477

请注意,它去掉了前一行的最后一个字符,我不希望这样

那么我怎样才能达到这个结果呢?

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477

答案1

使用 awk:

awk '$2 !~ /\/$/ {$2 = $2 "/"}; 1' file

答案2

简单的。假设有问题的文件名是 foo.txt,那么您想要的可以通过sed如下方式完成:

sed 's/$/\//' foo.txt > aux && mv aux foo.txt

相关内容