如何替换部分标题,删除两个字符之间的bash、awk、sed
我有一个制表符分隔的文件如何替换部分标题,删除两个字符之间的bash、awk、sed,bash,unix,awk,sed,Bash,Unix,Awk,Sed,我有一个制表符分隔的文件 abc_a1.txt\tcde_b2.txt\tefgh_c11.txt\t.... 1\t2\t3\t... 我想为每个列标题去掉\u之后的任何内容。我想去 abc\tcde\tefgh\t... 1\t2\t3\t... 我该怎么做呢。尝试过,sed–i's/.*//g',它在第一次\uu 感谢您的帮助使用gnu-sed您可以使用反括号表达式: sed 's/_[^\t]*//g' file \u[^\ t]*匹配下划线,后跟零个或多个非制表符。使用gnu-s
abc_a1.txt\tcde_b2.txt\tefgh_c11.txt\t....
1\t2\t3\t...
我想为每个列标题去掉\u
之后的任何内容。我想去
abc\tcde\tefgh\t...
1\t2\t3\t...
我该怎么做呢。尝试过,sed–i's/.*//g'
,它在第一次\uu
感谢您的帮助使用
gnu-sed
您可以使用反括号表达式:
sed 's/_[^\t]*//g' file
\u[^\ t]*
匹配下划线,后跟零个或多个非制表符。使用gnu-sed
可以使用反括号表达式:
sed 's/_[^\t]*//g' file
\uu[^\ t]*
匹配下划线,后跟零个或多个非制表符。在awk中尝试:
awk '{gsub(/_[^\\]*/,"");print}' Input_file
试用sed:
sed 's/_[^\\]*//g' Input_file
编辑:正如OP所说\t是输入文件中的选项卡,所以现在也添加以下解决方案
awk '{gsub(/_[^\t]*/,"");print}' Input_file
在awk中尝试:
awk '{gsub(/_[^\\]*/,"");print}' Input_file
试用sed:
sed 's/_[^\\]*//g' Input_file
编辑:正如OP所说\t是输入文件中的选项卡,所以现在也添加以下解决方案
awk '{gsub(/_[^\t]*/,"");print}' Input_file
如果你不担心最后一个字段
sed 's/_[^\t]*\t/\t/g;s/_[^\t]*$//'
否则
如果你不担心最后一个字段
sed 's/_[^\t]*\t/\t/g;s/_[^\t]*$//'
否则。你有文字
\t
或\t
是制表符吗?@anubhava,它们是制表符,不是文字。你有文字\t
或\t
是制表符吗?@anubhava,它们是制表符,不是文字。谢谢,\t
不是文字,而是制表符。我相信你的答案也行。谢谢,\t
不是字面意思,而是制表符。我相信你的答案也行得通。我想我把你和键入literal\t
搞混了,但是我现在知道如果它有literal\t
我想我把你和键入literal\t
搞混了,但是我现在知道如果它有literal\t
怎么处理了