Bash 替换和删除字符串中的字符,并将输出添加为新列

Bash 替换和删除字符串中的字符,并将输出添加为新列,bash,awk,sed,Bash,Awk,Sed,我有一个我想处理的程序的输出,如果我将其传输到一个文件,我会得到: file/path@backup2018 file2/path/more/path/path@backup2019 file3/path@backup2017 我想处理它,使它看起来像这样: file/path file.path file2/path/more/path/path file.path.more.path.path file3/path

我有一个我想处理的程序的输出,如果我将其传输到一个文件,我会得到:

file/path@backup2018
file2/path/more/path/path@backup2019
file3/path@backup2017
我想处理它,使它看起来像这样:

file/path                   file.path
file2/path/more/path/path   file.path.more.path.path
file3/path                  file.path
我已经想出了如何使用单独的命令来实现它,但是我想要一个单行程序。

使用
sed

$ awk -F@ '{s=$1; gsub("/", ".", s); print $1, s}' file | column -t
file/path                  file.path
file2/path/more/path/path  file2.path.more.path.path
file3/path                 file3.path
sed 's/\([^@]*\)@.*/\1 \1/g' file|column -t

欢迎来到SO,我们鼓励用户在他们的帖子中添加他们的努力,所以请添加您的努力,以解决您自己的问题。