3
Cheat Sheet: Cutting Text with cut None Written by Benjamin Cane on 2012/10/22 bencane.com /2012/10/22/cheat-sheet-cutting-text-with-cut The cut command is a Unix/Linux tool used to literally cut text from files and output from other commands. With the cut command a user can take text and output only certain parts of the line. In my opinion cut is the most under recognized and utilized command in Linux/Unix. This is mostly due to the fact that when most Sysadmins want to cut text from files or standard output many will reach for AWK. While AWK is a great tool for quick and dirty commands; I tend to reach for cut before AWK. The below cheat sheet should show many ways to use cut with every day tasks. Common Separated Values Print the first field out of a CSV file $ cut -d: -f1 passwd.bak root daemon Print the first field out of CSV output from another command $ head -1 /etc/passwd | cut -d: -f1 root Print the first, second, and seventh field out of a CSV file To change the field simply change the numbers after -f separated by a comma. $ cut -d: -f1,2,7 passwd.bak root:x:/bin/bash Print text based on Spaces $ cut -d -f3 /etc/motd Ubuntu Print the fourth field and everything after that from a command This command is pretty handy if you wanted to make a script out of the past few commands you ran.

Bencane.com-Cheat Sheet Cutting Text With Cut, None, Written by B

Embed Size (px)

DESCRIPTION

Bencane.com-Cheat Sheet Cutting Text With Cut, None, Written by B

Citation preview

Cheat Sheet: Cutting Text with cut None Written byBenjamin Cane on 2012/10/22bencane.com/2012/10/22/cheat-sheet-cutting-text-with-cutThe cut command is a Unix/Linux tool used to literally cut text from files and output from othercommands. With the cut command a user can take text and output only certain parts of the line.In my opinion cut is the most under recognized and utilized command in Linux/Unix. This is mostly dueto the fact that when most Sysadmins want to cut text from files or standard output many will reach forAWK.While AWK is a great tool for quick and dirty commands; I tend to reach for cut before AWK. The belowcheat sheet should show many ways to use cut with every day tasks.Common Separated ValuesPrint the first field out of a CSV file $ cut -d: -f1 passwd.bak root daemonPrint the first field out of CSV output from another command $ head -1 /etc/passwd | cut -d: -f1 rootPrint the first, second, and seventh field out of a CSV fileTo change the field simply change the numbers after -f separated by a comma. $ cut -d: -f1,2,7 passwd.bak root:x:/bin/bashPrint text based on Spaces $ cut -d -f3 /etc/motd UbuntuPrint the fourth field and everything after that from a commandThis command is pretty handy if you wanted to make a script out of the past few commands you ran. $ history | cut -d -f 4- ping google.comPrint up to the 4th field $ cut -d -f-4 /etc/motd Welcome to Ubuntu 12.04Print all fields between 5 and 8 $ cut -d: -f5-8 passwd root:/root:/bin/bashOutput with a different delimiter (make a CSV)Convert : to , $ cut --output-delimiter=, -d: -f1- passwd root,x,0,0,root,/root,/bin/bashConvert space to , $ ps -elf | cut --output-delimiter=, -d -f1- F,S,UID,,,,,,,,PID,,PPID,,C,PRI,,NI,ADDR,SZ,WCHAN,,STIME,TTY,,,,,,,,,,TIME,CMD 4,S,root,,,,,,,,,1,,,,,0,,0,,80,,,0,-,,6083,poll_s,19:07,?,,,,,,,,00:00:12,/sbin/initOutput only lines that have a delimiterThis command will only output lines that have a : (in our example), within the file tmpfile there aremultiple lines some with : and some without. $ head tmpfile Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-29-generic x86_64) 73 packages can be updated. 10 updates are security updates. root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync $ cut -s -d: -f1-4 tmpfile root:x:0:0 daemon:x:1:1 bin:x:2:2 sys:x:3:3 sync:x:4:65534BytesPrint bytes 1 through 45 $ cut -b1-45 /etc/motd Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-Print everything but bytes 10 through 45 $ cut --complement -b10-45 /etc/motd Welcome t29-generic x86_64)CharactersPrint characters 1 through 25 $ cut -c1-25 /etc/motd Welcome to Ubuntu 12.04 LPrint everything but characters 10 through 25 $ cut --complement -c10-25 /etc/motd Welcome tTS (GNU/Linux 3.2.0-29-generic x86_64)