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