我有一个文件有2' - ' (连字符或减号)符号作为字段。它有21个领域。我可以计算这些领域的位置,那些是2美元和3美元。如何使用unix shell脚本删除这些字段。样本数据如下:
192.168.1.223 - - [15/Jul/2015:16:54:07 +0530] "GET / HTTP/1.1" 403 4954 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2453.0 Safari/537.36"
192.168.1.223 - - [15/Jul/2015:16:54:08 +0530] "GET /icons/apache_pb.gif HTTP/1.1" 200 2326 "http://192.168.1.232/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2453.0 Safari/537.36"
我想删除' - ' 2美元和3美元的位置。 但是想补充一点。我知道这些职位,因为我知道这些职位。如果我不知道职位而且没有领域更多,那该怎么办?我只想自动化系统,以便代码在行中搜索并删除它。
简而言之,我想编写一个脚本,它将检查给定文件的每个字段,并删除那些垃圾字符,如' - '(连字符或减号)。
答案 0 :(得分:0)
以下适用于我的(Linux)计算机以删除第2列和第3列:
cut -d ' ' --complement -f 2,3
我不知道--complement
选项的标准/可移植性如何。
另一方面,如果您要删除包含-
的字段,无论它们出现在何处,请尝试:
perl -pe 's/ -(?= )//g'