Awk 使用linux命令行基于分隔符拆分文本文件

Awk 使用linux命令行基于分隔符拆分文本文件,awk,Awk,我有一个包含以下文本行的文件: jeremy , thomas , 123 peter , paul , 456 jack , jill , 789 我想删除除中心项之外的所有数据。例如,以包含以下内容的文件结尾: thomas paul jill 我尝试了很多awk模式,我的大脑都快爆炸了。任何帮助都将不胜感激。试试这个 cat <filepath> | tr -d ' ' | cut -d',' -f2 cat | tr-d'| cut-d','-f2 试试awk: a

我有一个包含以下文本行的文件:

jeremy , thomas , 123 
peter , paul , 456 
jack , jill , 789
我想删除除中心项之外的所有数据。例如,以包含以下内容的文件结尾:

thomas
paul
jill
我尝试了很多awk模式,我的大脑都快爆炸了。任何帮助都将不胜感激。

试试这个

cat <filepath> | tr -d ' ' | cut -d',' -f2
cat | tr-d'| cut-d','-f2
试试awk:

awk -F '[[:space:]]*,[[:space:]]*' '{print $2}' input.txt
格雷普环顾四周:

grep -Po '(?<=, ).*(?= ,)' file
grep-Po'(?试试这个:

$ cat (your file)| cut -d ',' -f2 > (new file)
例如:

$ cat /home/file1.txt | cut -d ',' -f2 > /home/file2.txt

我猜这是假设你没有强迫自己使用awkNo我没有强迫自己使用awk,它只是看起来是正确的工具。现在我意识到我已经偏离了基准。感谢你提供的简单解决方案。我不会说你偏离了基准。kev有一个很好的纯awk解决方案。@user1488639 awk绝对是正确的解决方案。你选择的解决方案as correct无故使用cat,有2条不必要的管道,将删除列中的空格,等等。@MattBall,因为cut不允许您指定像“,”这样的多字符字符串作为字段分隔符。这似乎不适用于我,但使用实际的空格字符does@Necrolyte2那你一定是用了旧的破awk(/bin/awk在Solaris上)。在Solaris或nawk上使用不同的awk,例如/usr/xpg4/bin/awk。