比赛后替换字符

时间:2019-07-10 19:59:23

标签: shell awk sed

我有一个包含命令行的文件,其中一些带有斜杠。我需要在大多数字段中使用斜杠来使命令起作用,但不需要在其中使用斜杠,尤其是在我输出到文件的最后一列中不需要斜杠。我想用连字符替换最后一栏中的斜杠。

我尝试过查找带有反向引用的awk和sed建议,但没有遇到任何可行的方法。

我有一个带有以下内容的文件:

foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes/no/maybe.txt

我想用连字符替换最后一栏中的斜杠,如下所示:

foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes-no-maybe.txt

不会影响我有斜线的其他列。

1 个答案:

答案 0 :(得分:0)

内置的NF变量包含当前记录中的字段数,使您可以在最后一个字段上进行操作而不必知道有多少个字段。如此简单:

$ awk '{gsub("/","-",$NF)}1' file
foo find "https://localhost" "/website/foo" "this/that/the/other" "yes/no/maybe" -u admin -p admin > yes-no-maybe.txt