Bird
Raised Fist0
Bash Scriptingscripting~5 mins

cut and paste in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the cut command do in bash scripting?
The cut command extracts sections from each line of input, usually by specifying a delimiter and fields or by character positions.
Click to reveal answer
beginner
How do you use paste in bash scripting?
The paste command merges lines of files horizontally, joining corresponding lines from each file separated by a tab or a specified delimiter.
Click to reveal answer
beginner
Example: What does cut -d',' -f2 file.txt do?
It extracts the second field from each line of file.txt, assuming fields are separated by commas.
Click to reveal answer
intermediate
How can you combine cut and paste to rearrange columns?
You can use cut to extract columns from files and then use paste to join those columns side by side in a new order.
Click to reveal answer
beginner
What option in cut lets you select characters instead of fields?
The -c option lets you select specific character positions from each line.
Click to reveal answer
Which cut option extracts fields based on a delimiter?
A-d
B-c
C-s
D-f
What does the paste command do?
AJoins lines from multiple files horizontally
BSorts lines alphabetically
CDeletes lines from a file
DExtracts columns from a file
How do you extract the first 5 characters of each line using cut?
Acut -f1-5
Bcut -c1-5
Ccut -d1-5
Dcut -s1-5
Which command sequence joins the second column of file1.txt with the first column of file2.txt?
Apaste file1.txt file2.txt
Bcut -f2 file1.txt | paste -f1 file2.txt
Ccut -f2 file1.txt | paste - <(cut -f1 file2.txt)
Dcut -f2 file1.txt | paste - file2.txt
What delimiter does paste use by default?
ATab
BComma
CSpace
DColon
Explain how you would extract specific columns from a CSV file and then combine them in a new order using bash commands.
Think about using cut with -d and -f, then paste to join columns side by side.
You got /5 concepts.
    Describe the difference between selecting fields and selecting characters with the cut command.
    Fields depend on delimiters; characters are positions in the line.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does the cut command do in bash scripting?
      easy
      A. Deletes lines containing a specific pattern
      B. Extracts specific parts of each line from a file or input
      C. Joins lines from multiple files side by side
      D. Counts the number of lines in a file

      Solution

      1. Step 1: Understand the purpose of cut

        The cut command is used to extract sections from each line of input, usually by specifying fields or characters.
      2. Step 2: Compare with other commands

        paste joins lines side by side, grep deletes or filters lines, and wc counts lines. So, only cut extracts parts of lines.
      3. Final Answer:

        Extracts specific parts of each line from a file or input -> Option B
      4. Quick Check:

        cut = Extract parts [OK]
      Hint: Remember: cut slices parts, paste sticks lines side by side [OK]
      Common Mistakes:
      • Confusing cut with paste
      • Thinking cut deletes lines
      • Assuming cut counts lines
      2. Which of the following is the correct syntax to extract the 2nd field from a colon-separated file using cut?
      easy
      A. cut -f 2 -d ':' filename
      B. cut -d 2 -f ':' filename
      C. cut -c 2 filename
      D. cut -f ':' -d 2 filename

      Solution

      1. Step 1: Identify correct option flags for cut

        The -f flag specifies the field number, and -d specifies the delimiter character.
      2. Step 2: Match syntax to extract 2nd field with ':' delimiter

        cut -f 2 -d ':' filename uses -f 2 and -d ':', which is the correct order and syntax.
      3. Final Answer:

        cut -f 2 -d ':' filename -> Option A
      4. Quick Check:

        Fields (-f) then delimiter (-d) [OK]
      Hint: Use -f for field, -d for delimiter in cut [OK]
      Common Mistakes:
      • Swapping -f and -d flags
      • Using -c instead of -f for fields
      • Putting delimiter as field number
      3. Given two files, file1.txt contains:
      apple banana cherry
      and file2.txt contains:
      red yellow red
      What is the output of paste file1.txt file2.txt?
      medium
      A. appleyellow bananared cherryred
      B. apple banana cherry red yellow red
      C. apple red banana yellow cherry red
      D. apple,red banana,yellow cherry,red

      Solution

      1. Step 1: Understand paste command behavior

        paste joins lines from two files side by side separated by a tab by default.
      2. Step 2: Combine lines from both files line by line

        Line 1: apple + tab + red
        Line 2: banana + tab + yellow
        Line 3: cherry + tab + red
      3. Final Answer:

        apple red banana yellow cherry red -> Option C
      4. Quick Check:

        paste joins lines side by side [OK]
      Hint: paste joins lines horizontally, not vertically [OK]
      Common Mistakes:
      • Thinking paste stacks lines vertically
      • Assuming paste adds commas
      • Ignoring tab separator default
      4. What is wrong with this command to extract the first 3 characters of each line?
      cut -c 1-3 file.txt
      It returns an error. Why?
      medium
      A. The command is correct; error likely from missing file
      B. The range should be specified as 1,3 not 1-3
      C. The -c option does not accept ranges
      D. The syntax is correct; error is from file permissions

      Solution

      1. Step 1: Check cut syntax for character ranges

        cut -c 1-3 is the correct syntax to extract characters 1 to 3.
      2. Step 2: Consider other reasons for error

        If an error occurs, it is likely due to the file not existing or permission issues, not syntax.
      3. Final Answer:

        The command is correct; error likely from missing file -> Option A
      4. Quick Check:

        cut -c 1-3 is valid syntax [OK]
      Hint: Check file existence before blaming cut syntax [OK]
      Common Mistakes:
      • Thinking cut -c doesn't accept ranges
      • Using commas instead of dash for ranges
      • Ignoring file existence or permissions
      5. You have two files:
      names.txt with:
      John Jane Doe
      and ages.txt with:
      25 30
      You want to create a file combined.txt where each line has name and age separated by a comma. Missing ages should show as 'N/A'. Which command sequence achieves this?
      hard
      A. paste -d ',' names.txt ages.txt > combined.txt
      B. paste names.txt ages.txt | sed 's/$/,N\/A/' > combined.txt
      C. cut -d ',' -f 1 names.txt > combined.txt
      D. paste -d ',' names.txt ages.txt | sed 's/,$/,N\/A/' > combined.txt

      Solution

      1. Step 1: Use paste with comma delimiter

        paste -d ',' names.txt ages.txt joins lines with a comma.
      2. Step 2: Handle missing ages with sed

        Lines missing age end with a comma only, so sed 's/,$/,N\/A/' replaces trailing comma with ',N/A'.
      3. Step 3: Redirect output to combined.txt

        Using > combined.txt saves the result to the file.
      4. Final Answer:

        paste -d ',' names.txt ages.txt | sed 's/,$/,N\/A/' > combined.txt -> Option D
      5. Quick Check:

        paste + sed fixes missing fields [OK]
      Hint: Use paste with -d and sed to fix missing fields [OK]
      Common Mistakes:
      • Not handling missing age lines
      • Using cut instead of paste for joining
      • Forgetting to redirect output to file
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard