我必须对文档进行更改,其中有两列用制表符(\ t)分隔,每条记录用换行符分隔\ n。该文件的陈述如下:
/something/random/2345.txt
我的目标是移除整个字符串,在这种情况下只保留数字2345.I used
sed 's/something/random//g' file.csv
但我不知道如何逃避/ cause sed语法有/也。也不是所有的记录都有相同的单词,所以我会寻找类型的正则表达式
/*/*.*
但每个条目都有一个数字作为记录的一部分,我想提取它。 还有一些记录不包含任何数字,我想删除这些记录以及该记录的下一列中的相应条目。 该文件为CSV格式。
答案 0 :(得分:2)
您可以使用反斜杠转义正斜杠,或者可以使用与正斜杠不同的字符来分隔表达式。观察:
echo foobar | sed sIfooIcrowI
> crowbar
当然,您可能不应该使用字母字符作为分隔符。我只是在这里使用它来表明几乎任何普通字符都可以代替斜杠。
答案 1 :(得分:0)
您可以从字符串中的每个语句的brining中删除所有非数字字符:
sed 's/[^0-9]*\(.*\)[\t]*/\1/g'