我长期搜索这个,但我无法弄清楚这个sed实际上做了什么!?
sed -E $'s:$:\t:' < file1 | cut -f 2 > file2
谁能解释一下?
答案 0 :(得分:1)
这不是一个sed脚本,它是一个包含bash,sed和cut命令的shell脚本。 sed脚本被错误的引用实践混淆,不必要地更改分隔符,并添加不必要的参数。我假设你知道cut -f 2
做了什么,所以我无法想象为什么你要把它包括在内以进一步混淆你的问题,所以我将忽略它并专注于sed部分。
你拥有的命令是:
sed -E $'s:$:\t:'
让我们明智地改写,你得到:
sed 's/$/'$'\t''/'
没有'
脚本分隔符,并且为了清晰起见添加了一些额外的空格:
s/ $ / $'\t' /
现在你看到它在做什么了吗?用标签替换行尾。