我希望就地编辑 TestFile 以获得所需的输出。我该怎么做?这是一个工作箱,所以我宁愿不安装其他软件包。
测试文件:
randomcollege-nt\jsmith90
randomcollege-nt\aakhbar91
randomcollege-nt\pmanning92
randomcollege-nt\dvader93
jshephard94
bwayne95
期望输出:
jsmith90
aakhbar91
pmanning92
dvader93
jshephard94
bwayne95
答案1
您可以使用sed
:
sed -i~ 's/.*\\//' TestFile
-i~
告诉sed
使用扩展创建备份~
。s///
是替代。.*\\
表示任何内容 (.*
) 后跟反斜杠- 替换部分为空
//
,即,反斜杠之前的所有内容都将被替换为空。
答案2
只需使用命令即可获得输出cut
:
cut -d '\' -f 2 < TestFile
Where-d
用于确定此处的分隔符/
以及-f
选择此处的字段2
。
例子:
$ cat TestFile
randomcollege-nt\jsmith90
randomcollege-nt\aakhbar91
randomcollege-nt\pmanning92
randomcollege-nt\dvader93
jshephard94
bwayne95
$ cut -d '\' -f 2 < TestFile
jsmith90
aakhbar91
pmanning92
dvader93
jshephard94
bwayne95
如果你想保存输出到另一个文件然后使用:
cut -d '\' -f 2 < TestFile > Output
如果你想覆写 TestFile
然后使用以下命令:
cut -d '\' -f 2 < TestFile|tee TestFile
答案3
虽然已经给出了两个正确答案,但我给出的是我个人的解决方案——
sed 's/randomcollege-nt\\//g' testfile
谢谢你,
答案4
这是另一种解决方案awk:
awk -F "\" '{print $(NF)}' testfile > outFile
其中-F
定义输入字段分隔符,然后print $(NF)
打印出最后一个字段。
outFile
将包含:
jsmith90
aakhbar91
pmanning92
dvader93
jshephard94
bwayne95