我需要删除文件中的""
"CITFFUSKD-E0"
我尝试过sed 's/\"//
。
结果是:
CITFFUSKD-E0"
如何删除两者?
我还需要删除第一个单词后面的所有内容,但输入可以是以下内容:
"CITFFUSKD-E0"
"CITFFUSKD_E0"
"CITFFUSKD E0"
我想要的结果:
CITFFUSKD
答案 0 :(得分:1)
您可以使用
sed 's/"//g' file | sed 's/[^[:alnum:]].*//' > newfile
sed 's/"//g;s/[^[:alnum:]].*//' file > newfile
如果要替换内联,请参见as @Wiimm suggests。
说明:
sed 's/"//g' file
-从文件中删除所有"
个字符sed 's/[^[:alnum:]].*//' > newfile
-还将从第一个非字母数字字符开始的行中删除所有字符,并将结果保存到newfile
中。答案 1 :(得分:0)
请您尝试以下。
awk 'match($0,/[a-zA-Z]+[^a-zA-Z]*/){val=substr($0,RSTART,RLENGTH);gsub(/[^a-zA-Z]+/,"",val);print val}' Input_file
答案 2 :(得分:0)
删除第一个单词后面的所有内容
sed 's/^"\([[:alpha:]]*\)[^[:alpha:]]*.*/\1/'
匹配第一个"
。然后匹配一系列字母字符。匹配直到找到非字母字符^[:alpha:]
。然后匹配其余部分。将其全部替换为\1
-它是\( ... \)
内部部分的后向引用,即。第一个字。
我需要使用sed命令删除两个“”
删除所有可能的"
:
sed 's/"//g'
提取"
之间的字符串:
sed 's/"\([^"]*\)"/\1/'
删除除字母数字字符(数字+ a-z + a-Z,即[0-9a-zA-z]
)以外的所有内容:
sed 's/[^[:alnum:]]//g'
答案 3 :(得分:0)
这应该一次性完成,删除"
,打印第一部分:
awk -F\" '{split($2,a,"-| |_");print a[1]}' file
CITFFUSKD
CITFFUSKD
CITFFUSKD
答案 4 :(得分:0)
只有1行时,您可以使用
grep -Eo "(\w)*" file | head -1
对于普通文件(每行以双引号开头) ,试试这个
tr -c [^[:alnum:]] '"' < file | cut -d'"' -f2
答案 5 :(得分:0)
许多合法方法可以解决此问题。
我倾向于使用对数据的了解来简化解决方案-这通常是一种选择。如果文件中的所有内容都遵循相同的模式,则只需提取遇到的第一组大写字母:
sed 's/"\([A-Z]\+\).*$/\1/' file
答案 6 :(得分:0)
awk'{gsub(/ ^。| .... $ /,“”)} NR == 1'文件
CITFFUSKD