Tab-Delimited Fileகளில் இருந்து கோடுகளை அகற்ற, Awk மற்றும் Grep in Bash ஐப் பயன்படுத்துதல்

Tab-Delimited Fileகளில் இருந்து கோடுகளை அகற்ற, Awk மற்றும் Grep in Bash ஐப் பயன்படுத்துதல்
Tab-Delimited Fileகளில் இருந்து கோடுகளை அகற்ற, Awk மற்றும் Grep in Bash ஐப் பயன்படுத்துதல்

பாஷ் கருவிகள் மூலம் கோப்பு செயலாக்கத்தை சீரமைத்தல்

பெரிய தரவுத்தொகுப்புகளைக் கையாள்வது பெரும்பாலும் தேவையற்ற தரவை திறமையாக அகற்ற சிக்கலான வடிகட்டலை உள்ளடக்கியது. டேப்-பிரிக்கப்பட்ட கோப்புகளுடன் பணிபுரியும் டெவலப்பர்களுக்கு, இதை அடைவது குறிப்பாக சவாலாக இருக்கும். நிபந்தனை தர்க்கத்தின் அடிப்படையில் பல கோப்புகள் தொடர்பு கொள்ளும்போது இந்த பணி மிகவும் சிக்கலானதாகிறது.

நெடுவரிசைப் பொருத்தங்களின் அடிப்படையில் முதன்மைக் கோப்பிலிருந்து எந்த வரிசைகளை விலக்க வேண்டும் என்று இரண்டாம் நிலை கோப்பு கட்டளையிடும் தரவுத்தொகுப்பில் வேலை செய்வதை கற்பனை செய்து பாருங்கள். போன்ற கருவிகளைப் பயன்படுத்துதல் awk மற்றும் grep ஒரு பாஷ் ஸ்கிரிப்டில் இது போன்ற சிக்கல்களை தீர்க்க ஒரு சக்திவாய்ந்த வழி, நெகிழ்வுத்தன்மை மற்றும் செயல்திறன் வழங்குகிறது. இருப்பினும், சரியான தர்க்கத்தை உருவாக்குவதற்கு துல்லியம் தேவைப்படுகிறது.

இந்தக் கட்டுரையில், குறிப்பிட்ட நெடுவரிசைகளை இரண்டாம் நிலை CSV கோப்புடன் ஒப்பிட்டு, தாவல் பிரிக்கப்பட்ட கோப்பிலிருந்து வரிசைகளை வடிகட்ட, பாஷைப் பயன்படுத்துவதைப் பற்றி ஆராய்வோம். நிஜ உலக எடுத்துக்காட்டுகள் மற்றும் குறியீடு துணுக்குகளின் கலவையுடன், இதே போன்ற சவால்களை திறம்பட சமாளிக்க நீங்கள் கற்றுக் கொள்வீர்கள். 🚀

நீங்கள் பாஷ் ஸ்கிரிப்டிங்கிற்கு புதியவராக இருந்தாலும் அல்லது மேம்பட்ட நுட்பங்களை நாடினாலும், இந்த வழிகாட்டி நெடுவரிசை அடிப்படையிலான தரவு வடிகட்டலுக்குத் தேவையான தெளிவை வழங்குகிறது. முடிவில், தந்திரமான தரவுத்தொகுப்புகளைக் கூட எளிதாகக் கையாள நீங்கள் தயாராக இருப்பீர்கள். தீர்வுக்கு முழுக்கு போடுவோம்! ✨

கட்டளை பயன்பாட்டின் உதாரணம்
awk பேட்டர்ன் ஸ்கேனிங் மற்றும் உரையை செயலாக்க பயன்படுகிறது. இந்த வழக்கில், இது குறிப்பிட்ட நெடுவரிசைகளை ஒப்பிடுவதன் மூலம் தாவலால் பிரிக்கப்பட்ட கோப்பிலிருந்து வரிசைகளை வடிகட்டுகிறது. எடுத்துக்காட்டு: awk -F"t" '$2=="key"' file.tsv இரண்டாவது நெடுவரிசை ஒரு குறிப்பிட்ட விசையுடன் பொருந்துகிறதா என்பதைச் சரிபார்க்கிறது.
IFS ஷெல்லுக்கான உள் புலப் பிரிப்பானை வரையறுக்கிறது. இங்கே, IFS=',' என்பது காற்புள்ளியில் கோடுகளைப் பிரிப்பதன் மூலம் CSV கோப்புகளை அலசப் பயன்படுகிறது.
getline ஒரு கோப்பு அல்லது நிலையான உள்ளீட்டிலிருந்து வரிகளைப் படிக்க Awk செயல்பாடு பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டில், போது ((கெட்லைன் < "file.tsv") > 0) உள்ளீட்டு கோப்பின் ஒவ்வொரு வரியையும் மாறும் வகையில் செயலாக்குகிறது.
next மீதமுள்ள வழிமுறைகளை செயலாக்காமல் அடுத்த பதிவிற்கு செல்ல Awk ஐ அறிவுறுத்துகிறது. எடுத்துக்காட்டு: ($2=="key") அடுத்தது பொருந்தும் வரிசைகளைத் தவிர்த்தால்.
mv கோப்புகளை நகர்த்துகிறது அல்லது மறுபெயரிடுகிறது. ஸ்கிரிப்ட்டில், mv temp_output.tsv input1.tsv அசல் கோப்பை வடிகட்டப்பட்ட வெளியீட்டைக் கொண்டு மாற்றுகிறது.
diff வரிக்கு வரி இரண்டு கோப்புகளை ஒப்பிடுகிறது. ஸ்கிரிப்ட்டின் வெளியீடு எதிர்பார்த்த முடிவுகளுடன் பொருந்துவதை உறுதிசெய்ய சோதனையில் பயன்படுத்தப்படுகிறது. எடுத்துக்காட்டு: diff output.tsv expect.tsv.
match ஒரு நிலை இருக்கிறதா என்பதை மதிப்பிடும் Awk வெளிப்பாடு. எடுத்துக்காட்டு: ஒரு நெடுவரிசை விலக்கு அளவுகோல்களுடன் பொருந்துகிறதா என்பதைக் கண்காணிக்க போட்டி=0 மாறியை துவக்குகிறது.
associative array முக்கிய-மதிப்பு ஜோடிகளைச் சேமிப்பதற்கான Awk அம்சம். எடுத்துக்காட்டு: விலக்கு[$1]=விரைவான தேடலுக்கான விலக்கு மதிப்புகளுக்கு $2 வரைபட CSV விசைகள்.
OFS Awk's Output Field Separator ஆனது வெளியீட்டில் புலங்கள் எவ்வாறு பிரிக்கப்படுகின்றன என்பதை வரையறுக்கிறது. எடுத்துக்காட்டு: BEGIN {OFS="t"} தாவல் பிரிக்கப்பட்ட வெளியீட்டை உறுதி செய்கிறது.
cat கோப்பு உள்ளடக்கங்களை ஒருங்கிணைத்து காட்சிப்படுத்தவும். பூனை வடிகட்டப்பட்ட output.tsv போன்ற வெளியீடுகளைச் சரிபார்க்கவும் காட்டவும் இங்கே பயன்படுத்தப்படுகிறது.

Awk மற்றும் Grep உடன் தரவு வடிகட்டுதலுக்கான மேம்பட்ட நுட்பங்கள்

வழங்கப்பட்ட ஸ்கிரிப்ட்களில், இரண்டாம் நிலை CSV கோப்பில் குறிப்பிடப்பட்டுள்ள நிபந்தனைகளின் அடிப்படையில் தாவலால் பிரிக்கப்பட்ட கோப்பிலிருந்து வரிசைகளை வடிகட்டுவதற்கான சவாலை நாங்கள் சமாளிக்கிறோம். இந்தச் சிக்கல் தரவுச் செயலாக்கத்தில் பொதுவான சூழ்நிலையாகும், இதில் தரவுத்தொகுப்புகள் தொடர்புடைய நிலைமைகளின் அடிப்படையில் தொடர்பு கொள்கின்றன. பாஷைப் பயன்படுத்தி, தீர்வு போன்ற கருவிகளைப் பயன்படுத்துகிறது awk நெடுவரிசைகளை பாகுபடுத்துவதற்கு மற்றும் grep பேட்டர்ன் மேட்சிங்கிற்கு, இது திறமையானதாகவும் பெரிய தரவுத்தொகுப்புகளுக்கு மாற்றியமைக்கவும் செய்கிறது. உதாரணமாக, ஒரு தனி பிழை அறிக்கையில் அடையாளம் காணப்பட்ட குறிப்பிட்ட உள்ளீடுகளைத் தவிர்த்து, தரவுப் பதிவுகளை நீங்கள் சுத்தம் செய்ய வேண்டியிருக்கும். 🚀

முதல் ஸ்கிரிப்ட் CSV கோப்பை வரியாகப் படிக்கிறது, வடிகட்டிகளாகச் செயல்படும் நெடுவரிசை மதிப்புகளைப் பிரித்தெடுக்கிறது. இது உள் புல பிரிப்பான் பயன்படுத்துகிறது (ஐ.எஃப்.எஸ்) CSV கோப்பில் கமாவால் பிரிக்கப்பட்ட மதிப்புகளை சரியாக அலச. தி awk கட்டளை இங்கே ஒரு முக்கிய பங்கை வகிக்கிறது, ஏனெனில் இது தாவலில் இருந்து பிரிக்கப்பட்ட கோப்பின் நெடுவரிசை CSV இன் மதிப்புடன் பொருந்துகிறதா என்று சரிபார்க்கிறது. ஒரு பொருத்தம் கண்டறியப்பட்டால், வரிசை வெளியீட்டில் இருந்து விலக்கப்படுவதை ஸ்கிரிப்ட் உறுதி செய்கிறது. இந்த கருவிகளின் கலவையானது தேவையற்ற வரிசைகளைத் தவிர்த்து தரவுத்தொகுப்பின் ஒருமைப்பாட்டைப் பேணுவதற்கு ஏற்றது. ✨

ஸ்கிரிப்ட்களின் மற்றொரு முக்கியமான அம்சம் மாடுலாரிட்டி. எடுத்துக்காட்டாக, அசல் கோப்பை மேலெழுதுவதற்கு முன் இடைநிலை முடிவுகளைச் சேமிக்க தற்காலிக கோப்புகள் பயன்படுத்தப்படுகின்றன. பகுதி செயலாக்கப் பிழைகள் உள்ளீட்டுத் தரவைச் சிதைக்காது என்பதை இந்த அணுகுமுறை உறுதி செய்கிறது. பிரத்தியேக பயன்பாடு awk ஒரு தீர்வு மற்ற கருவிகளுக்கு வெளிப்புற அழைப்புகளைக் குறைப்பதன் மூலம் செயல்திறனை மேம்படுத்துகிறது. Awk இல் உள்ள துணை வரிசைகள் விலக்கு தர்க்கத்தை எளிதாக்குகின்றன, ஸ்கிரிப்டை சுத்தமாகவும் பராமரிக்கவும் எளிதாக்குகிறது. உங்களிடம் வாடிக்கையாளர் பட்டியல் இருக்கும் மற்றும் கொடியிடப்பட்ட ஐடிகளின் அடிப்படையில் வரிசைகளை அகற்ற வேண்டிய சூழ்நிலையைக் கவனியுங்கள்; இந்த நுட்பங்கள் அதை நேரடியாகவும் நம்பகமானதாகவும் ஆக்குகின்றன.

கூடுதலாக, இந்த ஸ்கிரிப்டுகளில் பிழை கையாளுதல் நுட்பமாக கட்டமைக்கப்பட்டுள்ளது. போன்ற கட்டளைகளைப் பயன்படுத்துதல் எம்வி வடிகட்டலுக்குப் பிறகு கோப்புகளை மாற்றுவதற்கு, தற்செயலான மேலெழுதங்கள் இல்லை என்பதை உறுதிப்படுத்துகிறது. ஸ்கிரிப்ட்கள் யூனிட் சோதனைகளையும் பயன்படுத்துகின்றன, இது எதிர்பார்த்த முடிவுகளுடன் ஒப்பிடுவதன் மூலம் வெளியீட்டின் சரியான தன்மையை சரிபார்க்கிறது. Linux அல்லது macOS போன்ற பல்வேறு சூழல்களில் தீர்வை இயக்கும்போது இந்தப் படி மிகவும் பயனுள்ளதாக இருக்கும். சிறந்த நடைமுறைகள் மற்றும் சிந்தனைமிக்க ஸ்கிரிப்டிங்கை இணைப்பதன் மூலம், இந்த பாஷ் தீர்வுகள் மிகவும் மறுபயன்பாட்டு மற்றும் திறமையானவை, அவை நிஜ-உலக தரவு மேலாண்மை காட்சிகளுக்கு சிறந்த பொருத்தமாக இருக்கும். 🌟

பாஷில் திறமையான தரவு வடிகட்டுதல்: சிக்கலான நிலைமைகளுக்கு Awk மற்றும் Grep ஐப் பயன்படுத்துதல்

இந்த அணுகுமுறை உரை கையாளுதலுக்காக Awk மற்றும் Grep உடன் இணைந்து Bash ஸ்கிரிப்டிங்கைப் பயன்படுத்துகிறது. தீர்வு மட்டு மற்றும் தெளிவு மற்றும் மறுபயன்பாடு கருத்து.

# Define input files
IN1="input1.tsv"
IN2="input2.csv"
# Temporary file for intermediate processing
TEMP_FILE="temp_output.tsv"

# Read the CSV file line by line
while IFS=',' read -r CL1 CL2; do
  # Check if the first column of IN2 matches the second column of IN1
  awk -F"\t" -v cl1="$CL1" -v cl2="$CL2" 'BEGIN {OFS="\t"} 
    { if ($2 == cl1) next; else print }' "$IN1" > "$TEMP_FILE"
  # Replace original file with the filtered output
  mv "$TEMP_FILE" "$IN1"
done < "$IN2"

# Print the final filtered output
cat "$IN1"

மாற்று அணுகுமுறை: செயல்திறன் மேம்படுத்தலுக்கான தூய Awk ஐப் பயன்படுத்துதல்

இந்த தீர்வு Awk ஐ பிரத்தியேகமாக இரண்டு கோப்புகளையும் திறம்பட செயலாக்குகிறது, இது பெரிய தரவுத்தொகுப்புகளுக்கான அளவிடுதலை உறுதி செய்கிறது.

# Define input files
IN1="input1.tsv"
IN2="input2.csv"

# Create an associative array to store exclusions
awk -F"," '{ exclude[$1]=$2 } END {
  while ((getline < "input1.tsv") > 0) {
    match = 0
    for (key in exclude) {
      if ($2 == key) { match = 1; break }}
    if (!match) print }}' "$IN2" > "filtered_output.tsv"

# Output the filtered result
cat "filtered_output.tsv"

யூனிட் டெஸ்டிங் ஸ்கிரிப்ட்: டேட்டா பிராசஸிங் துல்லியத்தை சரிபார்த்தல்

யூனிட் சோதனைகள் வெவ்வேறு சூழ்நிலைகளில் ஸ்கிரிப்ட் எதிர்பார்த்தபடி செயல்படுவதை உறுதி செய்கிறது. உள்ளீடு மற்றும் வெளியீட்டு நிலைத்தன்மையை சோதிக்க இந்த ஸ்கிரிப்ட் பாஷைப் பயன்படுத்துகிறது.

# Test Input Files
echo -e "HEAD1\tHEAD2\tHEAD3\tHEAD4\tHEAD5\tHEAD6\nQux\tZX_999876\tBar\tFoo\tMN111111\tQuux\nFoo\tAB_123456\tBar\tBaz\tCD789123\tQux\nBar\tAC_456321\tBaz\tQux\tGF333444\tFoo\nFoo\tCD789123\tQux\tBaz\tGH987124\tQux" > test_input1.tsv
echo "AB_123456,CD789123\nZX_999876,MN111111" > test_input2.csv

# Run the main script
bash main_script.sh

# Compare output with expected result
expected_output="HEAD1\tHEAD2\tHEAD3\tHEAD4\tHEAD5\tHEAD6\nQux\tZX_999876\tBar\tFoo\tMN111111\tQuux\nFoo\tAB_123456\tBar\tBaz\tCD789123\tQux\nBar\tAC_456321\tBaz\tQux\tGF333444\tFoo"
diff <(cat filtered_output.tsv) <(echo -e "$expected_output")

Awk மற்றும் Grep மூலம் தரவு மாற்றத்தைத் திறக்கிறது

அட்டவணை தரவுத்தொகுப்புகளுடன் பணிபுரியும் போது, ​​திறமையான மாற்றம் மற்றும் வடிகட்டுதல் அவசியம். எளிய வரிசையை அகற்றுவதற்கு அப்பால், கருவிகள் போன்றவை awk மற்றும் grep பல நிபந்தனைகளின் அடிப்படையில் நிபந்தனை வடிவமைத்தல் அல்லது துணைக்குழுக்களை பிரித்தெடுத்தல் போன்ற மேம்பட்ட தரவு கையாளுதலை இயக்கவும். இயந்திர கற்றல் மாதிரிகளுக்கான தரவைத் தயாரிப்பது அல்லது பதிவுக் கோப்புகளை நிர்வகித்தல் போன்ற பணிகளுக்கு இந்தப் பல்துறை அவர்களை விலைமதிப்பற்றதாக ஆக்குகிறது. உதாரணமாக, கொடியிடப்பட்ட அடையாளங்காட்டிகளின் அடிப்படையிலான தரவுத்தொகுப்பிலிருந்து முக்கியமான வாடிக்கையாளர் தகவலை நீக்க வேண்டிய சூழ்நிலையை கற்பனை செய்து பாருங்கள்—awk மற்றும் grep போன்ற பணிகளை தடையின்றி கையாள முடியும். 🌟

இந்த கருவிகளின் மற்றொரு முக்கியமான அம்சம் அவற்றின் அளவிடும் திறன் ஆகும். திறமையான நினைவக பயன்பாட்டுடன் வரிக்கு வரி செயலாக்குவதன் மூலம், அவை பெரிய கோப்புகளைக் கையாள்வதில் சிறந்து விளங்குகின்றன. Awk இன் துணை வரிசைகளின் பயன்பாடு, எடுத்துக்காட்டாக, முழு கோப்பையும் நினைவகத்தில் ஏற்றத் தேவையில்லாமல் விரைவான தேடலையும் திறமையான வடிகட்டலையும் அனுமதிக்கிறது. பரிவர்த்தனை பதிவுகள் அல்லது IoT-உருவாக்கப்பட்ட பதிவுகள் போன்ற நிஜ-உலக தரவு காட்சிகளுடன் பணிபுரியும் போது இது மிகவும் பயனுள்ளதாக இருக்கும். இதுபோன்ற சந்தர்ப்பங்களில், நகல் உள்ளீடுகளை அடையாளம் கண்டு அகற்றுவது அல்லது சிக்கலான நிலைமைகளின் அடிப்படையில் வடிகட்டுதல் போன்ற பணிகளை ஸ்கிரிப்ட்டின் சில வரிகளில் அடையலாம். 🚀

மேலும், இந்த கருவிகளை தானியங்கு பணிப்பாய்வுகளில் ஒருங்கிணைப்பது அவற்றின் சக்தியை அதிகரிக்கிறது. கிரான் போன்ற திட்டமிடல் கருவிகளுடன் அவற்றை இணைப்பதன் மூலம், தரவுத்தொகுப்புகளைத் தொடர்ந்து செயலாக்கி சுத்தம் செய்யும் அமைப்புகளை உருவாக்கலாம், அவை துல்லியமாகவும் பகுப்பாய்வுக்குத் தயாராகவும் இருப்பதை உறுதிசெய்துகொள்ளலாம். இந்த நுட்பங்கள் வணிகங்களை நேரத்தைச் சேமிக்கவும் பிழைகளைக் குறைக்கவும் அனுமதிக்கின்றன, எந்தவொரு தரவு நிபுணரின் டூல்கிட்டில் awk மற்றும் grep ஸ்டேபிள்ஸை உருவாக்குகின்றன. இந்த முறைகள் மூலம், நீங்கள் மிகவும் சிக்கலான தரவு சவால்களை கூட நம்பிக்கையுடனும் திறமையாகவும் சமாளிக்க முடியும்.

தரவு செயலாக்கத்திற்காக Awk மற்றும் Grep ஐப் பயன்படுத்துவது பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. பயன்படுத்துவதன் முக்கிய நன்மை என்ன awk பாரம்பரிய கருவிகள் மீது?
  2. Awk நெடுவரிசை அடிப்படையிலான செயல்பாடுகளை வழங்குகிறது, இது CSV அல்லது TSV கோப்புகள் போன்ற கட்டமைக்கப்பட்ட தரவுகளுக்கு சரியானதாக அமைகிறது. இது குறைந்தபட்ச ஸ்கிரிப்டிங்குடன் நிபந்தனை அடிப்படையிலான செயலாக்கத்தை செயல்படுத்துகிறது.
  3. எப்படி செய்கிறது grep இருந்து வேறுபடுகின்றன awk தரவு வடிகட்டலில்?
  4. Grep முதன்மையாக தேடல் வடிவங்களுக்கானது awk நெடுவரிசை கையாளுதல் அல்லது கணக்கீடுகள் போன்ற மேம்பட்ட தர்க்கத்தை அனுமதிக்கிறது.
  5. முடியும் awk மற்றும் grep பெரிய கோப்புகளை கையாளவா?
  6. ஆம், பெரிய தரவுத்தொகுப்புகளின் நினைவக-திறனுள்ள கையாளுதலை உறுதிசெய்து, இரண்டும் வரிக்கு வரி செயலாக்கத்திற்கு உகந்ததாக உள்ளது.
  7. சிக்கலான தரவுத்தொகுப்புகளில் துல்லியமான வடிகட்டலை எவ்வாறு உறுதிப்படுத்துவது?
  8. போன்ற கருவிகளை இணைப்பதன் மூலம் awk மற்றும் grep மற்றும் வெளியீட்டு நிலைத்தன்மையை சரிபார்க்க அலகு சோதனைகளுடன் ஸ்கிரிப்ட்களை சோதிக்கிறது.
  9. இணைப்பதற்கான சில பொதுவான பயன்பாட்டு நிகழ்வுகள் என்ன awk மற்றும் grep?
  10. வாடிக்கையாளர் தரவுத்தொகுப்புகளை சுத்தம் செய்தல், நகல்களை அகற்றுதல், பகுப்பாய்வுக்கான கோப்புகளைத் தயாரித்தல் மற்றும் பதிவுக் கோப்புகளை நிர்வகித்தல் போன்றவை எடுத்துக்காட்டுகளாகும்.

உங்கள் பாஷ் பணிப்பாய்வுகளை நெறிப்படுத்துதல்

போன்ற கருவிகளை எவ்வாறு ஒருங்கிணைப்பது என்பதை இங்கு விவாதிக்கப்பட்ட நுட்பங்கள் விளக்குகின்றன awk மற்றும் grep மேம்பட்ட தரவு கையாளுதலுக்காக. இந்த முறைகள் பெரிய தரவுத்தொகுப்புகளை வடிகட்டுவதற்கு அல்லது தொடர்ச்சியான தரவு சுத்தம் செய்யும் பணிகளை தானியக்கமாக்குவதற்கும், மதிப்புமிக்க நேரத்தையும் முயற்சியையும் சேமிப்பதற்கும் குறிப்பாக பயனுள்ளதாக இருக்கும்.

நீங்கள் வாடிக்கையாளர் பதிவுகளைச் செயலாக்குகிறீர்களோ அல்லது பதிவுக் கோப்புகளை நிர்வகிக்கிறீர்களோ, இந்த அணுகுமுறை சிக்கலான தேவைகளைக் கையாள நெகிழ்வுத்தன்மையை வழங்குகிறது. இந்த கருவிகளை தானியங்கு ஸ்கிரிப்ட்களுடன் இணைப்பது துல்லியம் மற்றும் நம்பகத்தன்மையை உறுதிசெய்கிறது, நவீன தரவு பணிப்பாய்வுகளுக்கு அவை அவசியமானவை. ✨