列字符串编辑在文件中,bash sed awk



我在编辑文件中的一列时遇到了棘手的问题。
我的目标是在第二个可以填充字符串,以摆脱由\符号分隔的部分。
为了清楚起见,这是示例源文件:啊.txt

0 OS1\admin1 OS1\测试2 OS3\用户3 OS5\测试4 OS2\测试5 osx\admin

这就是应该如何改变的

0 管理员1 次测试2 用户3 测试4 测试5 管理员

它让我发疯,请帮忙:)Sed/Awk 或纯 bash 将只是 gr8

sed

sed 's/S*\//' input.txt

awk

awk '{sub(/[^[:space:]]*\/, "")}1' input.txt

砰砰��

while read -r x y; do echo $x ${y##*\}; done <input.txt

你能捕获第一列,然后删除第二列的第一部分吗?

sed 's/\(.*\

t\).*\\/\1/g'

\(.*t\)应捕获第 1 列,.*\应与第 2 列中的 \ 匹配并包含该列。然后我们将其替换为 1 ,这是我们之前捕获的第 1 列。

如果您想对文件进行内联编辑,可以尝试以下操作。请记住在测试任何内联编辑之前备份文件。

sed -i 's/   .*\/   /g' /yourfile

对于OS X,您可以尝试以下操作(请记住在测试任何内联编辑之前备份文件。

sed -i '' 's/   .*\/   /g' /yourfile

最新更新