如何去掉两个单词之间的逗号(,)?
如何将这两个单词放在两个不同的行中?
这是我的输入:
ent0
ent4
ent1,ent5
ent2,ent6
ent3,ent7
ent29,ent30
答案1
tr ',' '\n'
会将,
输入文件中的所有 s 替换为换行符,这听起来像是您想要的。
答案2
使用tr
:
$ tr ',' '\n' < FILE
ent0
ent4
ent1
ent5
ent2
ent6
ent3
ent7
ent29
ent30
答案3
使用bash
:
#!/bin/bash
while IFS='' read -r line; do
echo "${line//,/$'\n'}";
done <infile.txt
或者sed
sed -e $'s/,/\\\n/g' infile.txt
或者
sed 's/,/\
/g' infile.txt
答案4
您可以cut
按如下方式使用:
我不知道你的数据从哪里来。但我确信您可以将您的信息传送到cut
:
cat yourfile.data | cut -d, --output-delimiter ' ' -f 1,2
按照 man cut
...
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
--output-delimiter=STRING
use STRING as the output delimiter the default is to use the input delimiter
-f, --fields=LIST
select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
...
但是,如果您需要添加进一步的逻辑,我建议您使用sed
@RomanPerekhrest 所说的。您将有更灵活的方式使用强大的正则表达式来解析数据。在我看来,执行此操作的最佳正则表达式是:
'/^\s*\([^,]\+\)\s*,\s*([^,]\+\)\s*$/'
~ 0 个或多个空格后跟除逗号以外的任何内容,后跟 0 个或多个空格、逗号,0 个或多个空格后跟除逗号以外的任何内容,后跟 0 个或多个空格。