使用 awk 格式化文本
formatting text using awk
您好,我有以下文本,我需要使用 awk 或 sed 来打印 3 个单独的列
11/13/14 101 HUDSON AUBONPAINJERSEY CITY NJ .15
11/22/14 MTAMVM*110TH ST/CATNEW YORK NY .05
11/22/14 DUANE READE #14226 0NEW YORK NY .26
所以我想生成一个包含所有日期的文件。包含所有描述的另一个文件和包含所有数字的第三个文件
我可以使用 awk 打印第一列 printy $1,然后使用 -F [$] 选项打印最后一列,但我不能只打印中间一列,因为有空格等。我可以吗忽略空格?或者有更好的方法吗?
提前谢谢你
尝试这样做:
$ awk '
{
print > "dates"; =""
print $NF > "prices"; $NF=""
print [=10=] > "desc"
}
' file
或:
awk -F' +' '
{
print > "dates"
print > "desc"
print > "prices"
}
' file
然后:
$ cat dates
$ cat desc
$ cat prices
速度不够快,无法成为第一个给出 awk 解决方案的人,所以这里有 grep
和 sed
...
grep -o '^.*/.*/1.' file #first col
sed 's/^.*\/.*\/1.//;s/$.*//' file #middle col
grep -o '$.*$' file #last col
您好,我有以下文本,我需要使用 awk 或 sed 来打印 3 个单独的列
11/13/14 101 HUDSON AUBONPAINJERSEY CITY NJ .15
11/22/14 MTAMVM*110TH ST/CATNEW YORK NY .05
11/22/14 DUANE READE #14226 0NEW YORK NY .26
所以我想生成一个包含所有日期的文件。包含所有描述的另一个文件和包含所有数字的第三个文件
我可以使用 awk 打印第一列 printy $1,然后使用 -F [$] 选项打印最后一列,但我不能只打印中间一列,因为有空格等。我可以吗忽略空格?或者有更好的方法吗?
提前谢谢你
尝试这样做:
$ awk '
{
print > "dates"; =""
print $NF > "prices"; $NF=""
print [=10=] > "desc"
}
' file
或:
awk -F' +' '
{
print > "dates"
print > "desc"
print > "prices"
}
' file
然后:
$ cat dates
$ cat desc
$ cat prices
速度不够快,无法成为第一个给出 awk 解决方案的人,所以这里有 grep
和 sed
...
grep -o '^.*/.*/1.' file #first col
sed 's/^.*\/.*\/1.//;s/$.*//' file #middle col
grep -o '$.*$' file #last col