我有一个文件如下。
"ID" "1" "2"
"00000687" 0 1
"00000421" 1 0
Run Code Online (Sandbox Code Playgroud)
我想让它如下。
00000687 0 1
00000421 1 0
Run Code Online (Sandbox Code Playgroud)
我想要
我认为cut -c会起作用,但不能成功。我该怎么办?
小智 21
tail+ tr:
tail -n +2 file | tr -d \"
Run Code Online (Sandbox Code Playgroud)
tail -n+2从第二行到最后打印文件。tr -d \"删除所有双引号。
Fra*_*anò 15
这应该有效:
sed -i '1d;s/"//g' filename
Run Code Online (Sandbox Code Playgroud)
解释:
-i 将就地修改文件1d 将删除第一行s/"//g将删除"文件中的每一个您可以先尝试不用-i,输出将打印到标准输出。
解决标题中提出的问题,即从第一个以空格分隔的列中删除双引号,仅:
awk -F ' ' '{ gsub("\"", "", $1) }; NR > 1' file
Run Code Online (Sandbox Code Playgroud)
这使用该gsub()命令从每行的第一个字段中删除所有双引号。所述NR > 1在端部可确保第一行不被打印。
要从第一个字段中删除双引号,但前提是它们显示为字段的第一个和最后一个字符:
awk -F ' ' '$1 ~ /^".*"$/ { $1 = substr($1, 2, length($1) - 2) }; NR > 1' file
Run Code Online (Sandbox Code Playgroud)
这使用了一个正则表达式,^".*"$检测第一个字段的开头和结尾是否有双引号,如果有,substr()则触发提取字符串内部部分的块。保留字段中的任何内部双引号。